CountDownTimer倒计时按钮的实现

使用CountDownTimer实现简单易用的倒计时按钮;

    btn_time为Button控件;
    如以下代码:

btn_time.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // 第一个参数:设置的倒计时时间
                //第二个参数:定义间隔的时间
                new MyCountDownTimer(60000, 1000).start();
            }
        });
class MyCountDownTimer extends CountDownTimer {

        public MyCountDownTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
            // TODO Auto-generated constructor stub
        }

        @Override
        public void onTick(long millisUntilFinished) {
        //millisUntilFinished直到结束的剩余时间
        //在倒计时的时间里,按钮文字显示为倒计时的时间;
        //且为不可点击状态,设置按钮颜色已做区别
            btn_time.setText("倒计时:" + millisUntilFinished / 1000 + "s");
            btn_time.setClickable(false);
            btn_time.setBackgroundColor(Color.GRAY);
        }
         /**
         * Callback fired when the time is up.
         */
        @Override
        public void onFinish() {
        //到倒计时后按钮文字设置为原来的,且为可点击状态
            btn_time.setText("获取验证码");
            btn_time.setClickable(true);
            btn_time.setBackgroundColor(Color.BLUE);
        }

    }
效果:
当点击按钮后,按钮颜色置灰,文字显示为"倒计时:60s"递减状且不可点击;
当到达设置的时间后,按钮的文字、颜色显示为原来的,可点击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值