android 利用CountDownTimer实现验证码倒计时效果

android 利用CountDownTimer实现验证码倒计时效果

        我们在进行某些耗时操作时,一般都要设计一个进度条或者倒计时器,让进度可视化,告诉用户“等待之后更精彩”。在使用短信验证码注册或者登录App就可以看到这样的设计:点击“发送验证码”的按钮之后,按钮上就会出现倒计时(一般为60秒),倒计时结束之后,按钮的文字就会变成“重新发送”。

在Android中要实现这样的效果可以使用Handler发送消息,但其实还有一个已经封装好的抽象类可以帮上忙,那就是CountDownTimer,利用它,我们可以很轻松地实现倒计时。

首先先看效果图如下:


首先来看代码,布局为一个Button按钮(略过),来看MainActivity代码:

  private CountDownTimer downTimer;//倒计时类

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_phone, container, false);
        initView(inflate);

        return inflate;
    }


 downTimer = new CountDownTimer(60000, 1000) {
                    @Override
                    public void onTick(long millisUntilFinished) {

                        btn_getyanzhengma.setClickable(false);//防止重复点击,可避免多次点击后冲突事件
                        btn_getyanzhengma.setText(millisUntilFinished / 1000 + "秒后重新发送");
                    }

                    @Override
                    public void onFinish() {
                        btn_getyanzhengma.setText("发送验证码");
                        btn_getyanzhengma.setClickable(true);

                    }
                }.start();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值