美文网首页简化开发
android 倒计时CountDownTimer类的使用总结

android 倒计时CountDownTimer类的使用总结

作者: 後来的後来hugh | 来源:发表于2020-08-18 14:45 被阅读0次

    一、概述

    项目中经常用到倒计时的功能:手机获取验证码。google官方也帮我们封装好了一个类:CountDownTimer,使我们的开发更加方便;

    二、API

    CountDownTimer是一个抽象类,有两个抽象方法,

    1、public abstract void onTick(long millisUntilFinished);//这个是每次间隔指定时间的回调,millisUntilFinished:剩余的时间,单位毫秒

    2、public abstract void onFinish();//这个是倒计时结束的回调

    使用的时候只需要

    new CountDownTimer(long millisInFuture, long countDownInterval)

    //millisInFuture:倒计时的总时长

    //countDownInterval:每次的间隔时间  单位都是毫秒

    三、基本使用方法

    我们以短信验证码的倒计时来看,点击获取验证码,倒计时60s不可点击

    点击按钮,获取验证码成功之后就可以执行以上操作,最后一定要start,不然不会执行

    以按钮为例实现手机获取验证码举例:

    xml文件设置一个布局RelativeLayout

    <EditText

    android:layout_width="match_parent"

    android:layout_height="wrap_parent"

    android:layout_marginTop="20dp"

    android:layout_toLeftOf="@+id/btn" />

    <Button

    android:id="@+id/btn"

    android:layout_width="100dp"

    android:layout_height="wrap_parent"

    android:layout_marginTop="20dp"

    android:layout_alignParentRight="true"

    android:text="获取验证码" />

    .java文件

    public  class  MainActivity extends Activity{

        private Button mButtonClick;

        private TimerCount mTimerCount;

        @Override

        protected void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                 setContentView(R.layout.activity_main);

                mButtonClick = (Button ) findViewById(R.id.btn);

                mTimerCount = new  TimerCount (60 * 1000 , 1000);

                mButtonClick .setOnClickListener(new View.OnClickListener() {

                    @Override

                        public void onClick(View view) {

                            mTimerCount.start();

                        }

                });               

        }

    class  TimerCount  extends  CountDownTimer(){ //抽象类

    //构造方法

            public  TimerCount (long totalTime, long interval){

                    super(totalTime,interval);

               }

            @Override //覆写方法 - 结束方法

           public void onFinish() {

            mButtonClick .setEnable(true);

               mButtonClick .setText("重新获取");

            }

            @Override    //覆写方法 - 计时方法

            public void onTick(long millisUntilFinished) {

            mButtonClick .setEnable(false);

            mButtonClick .setText(millisUntilFinished / 1000 + "秒");

            }

        }

    }

    相关文章

      网友评论

        本文标题:android 倒计时CountDownTimer类的使用总结

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