项目中经常用到倒计时的功能,比如说限时抢购,手机获取验证码等等。而google官方也帮我们封装好了一个类:CountDownTimer,使我们的开发更加方便。该类是个抽象类,如果要使用这个类中的方法,就必须继承这个类实现它内部的抽象方法,该继承的类中通常是存在某个类的内部类中。该类主要功能就是可以我们自己设置倒计时的秒数和时间间隔,且只有一个构造方法。
基本使用方法:我们以短信验证码的倒计时来看,点击获取验证码,倒计时60s不可点击。
new CountDownTimer(60 * 1000, 1000) {
@Override
public void onFinish() {
if (tvCode != null) {
tvCode.setText("重新获取");
tvCodeWr.setTextColor(Color.parseColor("#E94715"));
tvCode.setClickable(true);
tvCode.setEnabled(true);
}
cancel();
}
@Override
public void onTick(long millisUntilFinished) {
if (tvCode != null) {
tvCode.setClickable(false);
tvCode.setEnabled(false);
tvCode.setText(millisUntilFinished / 1000 + "s");
tvCode.setTextColor(Color.parseColor("#999999"));
}
}
}.start();
点击按钮,获取验证码成功之后就可以执行以上操作,最后一定要start,不然不会执行。