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

来源:互联网 发布:qt tcp 端口监听 编辑:程序博客网 时间:2024/06/05 17:00

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

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;        }    }

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

阅读全文
0 0
原创粉丝点击