教你如何使用CountDownTimer定时器(短信验证码倒计时)

效果图镇楼

教你如何使用CountDownTimer定时器(短信验证码倒计时)_第1张图片
倒计时
教你如何使用CountDownTimer定时器(短信验证码倒计时)_第2张图片
短信验证

今天我们讲解一下短信验证码的倒计时功能如何处理。如有需要制作弹框的小伙伴也可先了解一下

http://blog.csdn.net/qq_36621990/article/details/77863810

如果不需要弹框的话,我们直接进入今天的主题。短信验证码倒计时功能。
一,首先我们先初始化获取短信验证的按键(findViewById),然后为其设置监听。
二,重写CountDownTimer工具类

//定时器
    class MyCountDownTimer extends CountDownTimer {
    //我这里写的是内部类,如果需要把类单独提出要在类前加public如对内部类有疑问可点击查看[http://blog.csdn.net/qq_36621990/article/details/77529058]


        public MyCountDownTimer(long millisInFuture, long countDownInterval) {
        //定时器通过构造函数传入的变量,分别代表总时间和倒计时间隔时间
            super(millisInFuture * 1000, countDownInterval * 1000);

        }

        @Override
        public void onFinish() {
        //定时器倒计时结束后回调的方法,我们可以在这里改变发送按键的文字和状态
            code_发送.setText("重新获取");
            //将发送按键设置为可点击状态
            code_发送.setEnabled(true);
        }

        @Override
        public void onTick(long millisUntilFinished) {
        //每到达一次倒计时的间隔时间回调一次该方法(如果倒计时间隔时间是一秒钟,那么每秒刷新一次)
            code_发送.setText(millisUntilFinished / 1000 + "秒后重试");
            //设置倒计时的UI界面(效果图中多少秒后重试的秒钟)
        }
    }

三,在监听方法中启动定时器或者取消定时器

  @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.code_发送:
            //新建定时器对象,同时传入倒计时的总时间和时间间隔
                MyCountDownTimer timer = new MyCountDownTimer(60, 1);
                timer.start();//启动定时器
                code_发送.setEnabled(false);//将发送按钮设置为不可点击
                break;
            case R.id.code_取消:
                timer.cancel();//取消当前任务
                break;
            default:
                break;
        }
    }

如果还有什么不懂的地方可在博客下方留言。

你可能感兴趣的:(教你如何使用CountDownTimer定时器(短信验证码倒计时))