功能如标题所示,简单的android的3秒倒计时关闭界面或点击关闭,如果3秒内点击就不会再开启自动关闭。看图说话,代码简单,注释清晰,一目了然:

下载整个项目代码。 

 

3秒过后进入下一界面:

代码:

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;//对号 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) { //点击成功后跳转到当前订单的界面 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秒关闭后进入的界面 *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;/** * 倒计时TextView帮助类 * http://download.csdn.net/user/qq_29614465 */public class CountDownTextViewHelper { // 倒计时 private CountDownTimer countDownTimer; // 倒计时结束的回调接口 private OnFinishListener listener; private TextView textView; /** * * @param textView * 需要显示倒计时的TextView * @param defaultString * 默认显示的字符串 * @param max * 需要进行倒计时的最大值,单位是秒 * @param interval * 倒计时的间隔,单位是秒 */ public CountDownTextViewHelper(final TextView textView,   final String defaultString, int max, int interval) { this.textView = textView; // 由于CountDownTimer并不是准确计时,在onTick方法调用的时候,time会有1-10ms左右的误差,这会导致最后一秒不会调用onTick() // 因此,设置间隔的时候,默认减去了10ms,从而减去误差。 // 经过以上的微调,最后一秒的显示时间会由于10ms延迟的积累,导致显示时间比1s长max*10ms的时间,其他时间的显示正常,总时间正常 countDownTimer = new CountDownTimer(max * 1000, interval * 1000 - 10) { @Override public void onTick(long time) { // 第一次调用会有1-10ms的误差,因此需要+15ms,防止第一个数不显示,第二个数显示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(); } } }; } /** * 开始 倒计时 */ public void start() { textView.setEnabled(false); countDownTimer.start(); } /** * 设置倒计时结束的监听器 * @param listener */ public void setOnFinishListener(OnFinishListener listener) { this.listener = listener; } /** * 倒计时结束的回调接口 */ public interface OnFinishListener { public void finish(); }}

到这里就是全部的关键代码了,布局文件当然由你自己处理了,如果想下载整个项目代码,可到我的资源页下载 (下载页里的代码稍微旧一点,但保证都可以用。新一点的代码以博客里的为准。)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. Open Core 上层代码结构
  2. android 使用uinput模拟输入设备的方法
  3. android sqlite数据库时间 日期 double等数据类型
  4. Android中的oast的使用
  5. python服务器与android客户端socket通信实例
  6. Android中判断手机是否联网实例
  7. Android(安卓)logcat 常用参数
  8. Android打开本地相册选取图片并显示在ImageView上
  9. Android中画图总结(2)

随机推荐

  1. 复杂链表的复制——牛客offer
  2. Java图形化界面实例:
  3. jtable表头渲染器
  4. 无法从其他用户的crontab作业执行java程
  5. Visual Studio 2012本身都是已经支持Jque
  6. Web分页实现及实例演示(一)——subList()
  7. 程序主菜单之javascript完全模拟
  8. 再论javaIO之拷贝MP3(read方法返回int的原
  9. Java的Grizzly为缓冲区占用了大量内存?
  10. Kotlin:相当于KClass的getClass()。