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();



猜你喜欢

转载自blog.csdn.net/mrzhao_perfectcode/article/details/79982794