android短信验证码倒计时实现

目前越来越多的app在注册或是进行对应操作时,要求获取短信验证码,在点击了获取短信验证码的按钮后,就是出现倒计时,比如倒计时60S,在倒计时 期间内,按钮点击是无效的,当倒计时结束后,如果你没有获取到验证码,可以再次点击。实现倒计时的方法很多,我们今天就通过继承 android. os.CountDownTimer类来实现!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public class MainActivity extends Activity {

private Button submit;
private TimeCount time;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);

time = new TimeCount(60000, 1000);
submit = (Button) findViewById(R.id.btn_login_submit);

submit.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
time.start();// 开始计时
}
});
}

class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}

@Override
public void onFinish() {// 计时完毕
submit.setText("获取验证码");
submit.setClickable(true);
}

@Override
public void onTick(long millisUntilFinished) {// 计时过程
submit.setClickable(false);//防止重复点击
submit.setText(millisUntilFinished / 1000 + "s");
}
}

扩展阅读:倒计时的CountDownTimer