美文网首页
Android 实现倒计时功能

Android 实现倒计时功能

作者: 谁动了我的代码QAQ | 来源:发表于2018-04-09 14:41 被阅读0次

       本人目前Android小白一枚,目前正在实习,因为在项目中用到的东西过段时间后经常会忘,所以决定在简书记录一下,方便以后查阅。若有说的不对的地方,欢迎各位大佬指正,小弟会虚心学习。

目前公司项目中有好几个用到倒计时的功能就找方法做了一个。

先上效果图:

当点击获取验证码时按钮开始60秒倒计时,当倒计时完成后,按钮变为“重新获取验证码”。

接下来上代码:

先上Button的布局文件

          android:id="@+id/get_code"

          android:layout_width="100dp"

          android:layout_height="35dp"

          android:layout_marginRight="15dp"

          android:background="@drawable/selector_verify_code"   //这个是自定义的背景,就不详细写了

          android:padding="10dp"

          android:text="获取验证码"

          android:textColor="@color/blue"

          android:textSize="10dp"/>

Android中提供了一个CountDownTimer 的倒计的类,初始化这个类的时候会重写两个方法,一个是 onTick() ,另一个是onFinish()。第一个方法开始计时的时候调用,可以在里面动态的改变计时的数字,第二个方法在计时完成时调用,可以在里面添加计时完成后需要改变的UI。

在代码中添加倒计时:

CountDownTimer  timer =new CountDownTimer (60*1000,1000) {

        @Override

        public void onTick (long millisUntilFinished)  {

               button.setEnabled (false);

               button.setBackground(getResources().getDrawable(R.drawable.selector_code_get));

               button.setText("" + millisUntilFinished /1000);

    }

      @Override

       public void onFinish() {

              button.setEnabled(true);

              button.setBackground(getResources().getDrawable(R.drawable.selector_verify_code));

              button.setText(“重新获取验证码”);

    }

}.start();

相关文章

网友评论

      本文标题:Android 实现倒计时功能

      本文链接:https://www.haomeiwen.com/subject/vsrihftx.html