美文网首页
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