一丶前言
今天做项目的时候,需要做一个按钮获取验证码,点击之后按钮需要倒计时,并且不可点击。现在将方法记录下来,方便下次遇到的时候解决。
二、实现
先上一张成功示意图:
成功示意图
实现倒计时的代码:
//这段是实现倒计时的代码
class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);//参数依次为总时长,和计时的时间间隔
}
@Override
public void onFinish() {//计时完毕时触发
//按钮上的文本显示
button.setText("重新获取");
//设置按钮可点击
button.setClickable(true);
}
@Override
public void onTick(long millisUntilFinished){//计时过程显示
//设置按钮不可点击
button.setClickable(false);
//设置倒计时时的显示文本
button.setText(getString(millisUntilFinished/1000 + "秒后重新获取");
}
}
在要实现的按钮点击的时候调用此类:
//点击按钮时触发倒计时,单位是毫秒
new TimeCount(60000, 1000).start();
这样就可以实现按钮倒计时的功能了。
我采取的是内部类的方法实现,也可以单独提取出来封成通用方法。
网友评论