欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)3秒鐘自動(dòng)關(guān)閉界面

 更新時(shí)間:2018年02月09日 08:36:32   作者:我夢(mèng)醒九分  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)3秒鐘自動(dòng)關(guān)閉界面,以支付成功為例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

 功能如標(biāo)題所示,簡單的android的3秒倒計(jì)時(shí)關(guān)閉界面或點(diǎn)擊關(guān)閉,如果3秒內(nèi)點(diǎn)擊就不會(huì)再開啟自動(dòng)關(guān)閉。看圖說話,代碼簡單,注釋清晰,一目了然:

下載整個(gè)項(xiàng)目代碼。 

 

3秒過后進(jìn)入下一界面:

代碼:

PaySuccessActivity.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
 * 支付成功頁面
 *http://download.csdn.net/user/qq_29614465
 */
public class PaySuccessActivity extends Activity {
 private ImageView im_back;
 private TextView tv_title;
 private TextView tv_paysuccess_time;//開始是3秒
 private ImageView im_paysuccess;//對(duì)號(hào)
 private Button b;
 private Boolean abc=false;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.paysuccess);
 im_back= (ImageView) findViewById(R.id.im_back);
 tv_title= (TextView) findViewById(R.id.tv_title);
 tv_title.setText("支付成功");
 tv_paysuccess_time=(TextView) findViewById(R.id.paysuccess_time);
 im_paysuccess= (ImageView) findViewById(R.id.paysuccess_im);
 im_paysuccess.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
 //點(diǎn)擊成功后跳轉(zhuǎn)到當(dāng)前訂單的界面
 Intent intent = new Intent(PaySuccessActivity.this, AfterPayActivity.class);
 startActivity(intent);
 finish();
 abc=true;
 }
 });
 CountDownTextViewHelper helper_pay=new CountDownTextViewHelper(tv_paysuccess_time, "0", 3, 1);
 helper_pay.setOnFinishListener(new CountDownTextViewHelper.OnFinishListener() {
 @Override
 public void finish() {
// TODO Auto-generated method stub
 if (abc==false) {
  Intent intent2 = new Intent(PaySuccessActivity.this, AfterPayActivity.class);
  startActivity(intent2);
 }
 }
 });
 helper_pay.start();
 }
}

AfterPayActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 * 3秒關(guān)閉后進(jìn)入的界面
 *http://download.csdn.net/user/qq_29614465
 */
public class AfterPayActivity extends Activity {
 private Button btn;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.after_pay);
 btn=(Button) findViewById(R.id.button_close);
 btn.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View arg0) {
 // TODO Auto-generated method stub
 finish();
 }
 });
 }
}

CountDownTextViewHelper.java

import android.graphics.Color;
import android.os.CountDownTimer;
import android.util.Log;
import android.widget.TextView;
/**
 * 倒計(jì)時(shí)TextView幫助類
 * http://download.csdn.net/user/qq_29614465
 */
public class CountDownTextViewHelper {
 // 倒計(jì)時(shí)
 private CountDownTimer countDownTimer;
 // 倒計(jì)時(shí)結(jié)束的回調(diào)接口
 private OnFinishListener listener;
 private TextView textView;
 /**
 *
 * @param textView
 * 需要顯示倒計(jì)時(shí)的TextView
 * @param defaultString
 * 默認(rèn)顯示的字符串
 * @param max
 * 需要進(jìn)行倒計(jì)時(shí)的最大值,單位是秒
 * @param interval
 * 倒計(jì)時(shí)的間隔,單位是秒
 */
 public CountDownTextViewHelper(final TextView textView,
   final String defaultString, int max, int interval) {
 this.textView = textView;
 // 由于CountDownTimer并不是準(zhǔn)確計(jì)時(shí),在onTick方法調(diào)用的時(shí)候,time會(huì)有1-10ms左右的誤差,這會(huì)導(dǎo)致最后一秒不會(huì)調(diào)用onTick()
 // 因此,設(shè)置間隔的時(shí)候,默認(rèn)減去了10ms,從而減去誤差。
 // 經(jīng)過以上的微調(diào),最后一秒的顯示時(shí)間會(huì)由于10ms延遲的積累,導(dǎo)致顯示時(shí)間比1s長max*10ms的時(shí)間,其他時(shí)間的顯示正常,總時(shí)間正常
 countDownTimer = new CountDownTimer(max * 1000, interval * 1000 - 10) {
 @Override
 public void onTick(long time) {
 // 第一次調(diào)用會(huì)有1-10ms的誤差,因此需要+15ms,防止第一個(gè)數(shù)不顯示,第二個(gè)數(shù)顯示2s
 textView.setText(((time + 15) / 1000)
  + "");
 textView.setTextColor(Color.BLACK);
 Log.d("CountDownTextViewHelper", "time = " + (time) + " text = "
  + ((time + 15) / 1000));
 }
 @Override
 public void onFinish() {
 textView.setEnabled(true);
 textView.setText(defaultString);
 if (listener != null) {
  listener.finish();
 }
 }
 };
 }
 /**
 * 開始 倒計(jì)時(shí)
 */
 public void start() {
 textView.setEnabled(false);
 countDownTimer.start();
 }
 /**
 * 設(shè)置倒計(jì)時(shí)結(jié)束的監(jiān)聽器
 * @param listener
 */
 public void setOnFinishListener(OnFinishListener listener) {
 this.listener = listener;
 }
 /**
 * 倒計(jì)時(shí)結(jié)束的回調(diào)接口
 */
 public interface OnFinishListener {
 public void finish();
 }
}

到這里就是全部的關(guān)鍵代碼了,布局文件當(dāng)然由你自己處理了,如果想下載整個(gè)項(xiàng)目代碼,可到我的資源頁下載 (下載頁里的代碼稍微舊一點(diǎn),但保證都可以用。新一點(diǎn)的代碼以博客里的為準(zhǔn)。)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論