使用CountDownTimer控件实现倒计时和验证码发送按钮

private CountDownTimer mCountDownTimer;

    private TextView time;

    private void requestSendSms() {

        if (mCountDownTimer != null) {

            return;

        } else {

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

                @Override

                public void onTick(long millisUntilFinished) {

                    time.setText((millisUntilFinished / 1001) + " s");

                }

                @Override

                public void onFinish() {

                    mCountDownTimer = null;

                    requestSendSms(); // 重新调用这个方法可以再次进行倒计时不断循环

                }

            };

        }

mCountDownTimer.start();}

不使用的时候可以cancel

 mCountDownTimer.cancel()


/**

* 获取验证码

*/

**工具类**

public class VerifyCodeTimeDown extends CountDownTimer {

    private TextView btGetVerifyCode;

    public VerifyCodeTimeDown(long millisInFuture, long countDownInterval, TextView btGetVerifyCode) {

        super(millisInFuture, countDownInterval);

        this.btGetVerifyCode = btGetVerifyCode;

    }

    @Override

    public void onTick(long millisUntilFinished) {

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

    }

    @Override

    public void onFinish() {

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

        btGetVerifyCode.setClickable(true);

    }

    public void startNow() {

        btGetVerifyCode.setClickable(false);

        start();

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容