本文实例为大家分享了Android实现倒计时功能的具体代码,供大家参考,具体内容如下

1、实现效果

如下图所示:

2、代码实现

新建一个名为CountdownTime的项目,activity_main.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>  

MainActivity.class代码如下:

public class MainActivity extends AppCompatActivity {  /**   * 倒计时标记   */  public static final int COUNTDOWN_TIME_CODE = 99999;  /**   * 倒计时间隔   */  public static final int DELAY_MILLIS = 1000;  /**   * 倒计时最大值   */  public static final int MAX_COUNT = 10;  /**   * 文本控件   */  private TextView countdownTimeTextView;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //初始化文本控件    countdownTimeTextView = findViewById(R.id.countdownTimeTextView);    //创建一个handler    CountdownTimeHandler handler = new CountdownTimeHandler(this);    //新建一个message    Message message = Message.obtain();    message.what = COUNTDOWN_TIME_CODE;    message.arg1 = MAX_COUNT;    //第一次发送message    handler.sendMessageDelayed(message, DELAY_MILLIS);  }  public static class CountdownTimeHandler extends Handler {    /**     * 倒计时最小值     */    public static final int MIN_COUNT = 0;    //创建MainActivity弱引用    final WeakReference mWeakReference;    public CountdownTimeHandler(MainActivity activity) {      this.mWeakReference = new WeakReference<>(activity);    }    @Override    public void handleMessage(Message msg) {      super.handleMessage(msg);      //获取对MainActivity的弱引用      MainActivity activity = mWeakReference.get();      switch (msg.what) {        case COUNTDOWN_TIME_CODE:          int value = msg.arg1;          activity.countdownTimeTextView.setText(String.valueOf(value--));          //循环发送消息的控制          if (value >= MIN_COUNT) {            Message message = Message.obtain();            message.what = COUNTDOWN_TIME_CODE;            message.arg1 = value;            sendMessageDelayed(message, DELAY_MILLIS);          }          break;      }    }  }}

3、快捷键总结

Ctrl+Alt+F:改变变量的域
Ctrl+Alt+T:surrounded with快捷键
Ctrl+P:查看方法的参数

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

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android(安卓)学习笔记 databinding简单使用:使用databinding在li
  3. not using the 2- or 3-argument View constructors
  4. android绘制几何图形的实例代码
  5. android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选
  6. 用户界面View之ProgressBar
  7. android通过代码判断手机是否root
  8. android 动态添加控件并实现每个子控件的点击事件
  9. Android模块化编程——WebView使用之与JavaScript交互

随机推荐

  1. 多个mysql数据库怎么指定到多个不同文件
  2. mysql查询一条工单时间需要10秒。优化sql
  3. Centos7下编译Qt的mysql驱动
  4. MySQL基于Navicat的基本操作技巧
  5. MySql中有哪些存储引擎?
  6. 数据库行转列和列转行小例子
  7. mysql的zip版本安装填坑
  8. InnoDB辅助索引页面的物理结构是什么样子
  9. 一步一步学MySQL----9 条件数据记录查询
  10. mysql 操作索引FORCE INDEX