效果圖鎮樓
倒計時
短信驗證
今天我們講解一下短信驗證碼的倒計時功能如何處理。如有需要制作彈框的小伙伴也可先了解一下
如果不需要彈框的話,我們直接進入今天的主題。短信驗證碼倒計時功能。
一,首先我們先初始化獲取短信驗證的按鍵(findViewById),然后為其設置監聽。
二,重寫CountDownTimer工具類
//定時器
class MyCountDownTimer extends CountDownTimer {
//我這里寫的是內部類,如果需要把類單獨提出要在類前加public如對內部類有疑問可點擊查看[http://blog.csdn.net/qq_36621990/article/details/77529058]
public MyCountDownTimer(long millisInFuture, long countDownInterval) {
//定時器通過構造函數傳入的變量,分別代表總時間和倒計時間隔時間
super(millisInFuture * 1000, countDownInterval * 1000);
}
@Override
public void onFinish() {
//定時器倒計時結束后回調的方法,我們可以在這里改變發送按鍵的文字和狀態
code_發送.setText("重新獲取");
//將發送按鍵設置為可點擊狀態
code_發送.setEnabled(true);
}
@Override
public void onTick(long millisUntilFinished) {
//每到達一次倒計時的間隔時間回調一次該方法(如果倒計時間隔時間是一秒鐘,那么每秒刷新一次)
code_發送.setText(millisUntilFinished / 1000 + "秒后重試");
//設置倒計時的UI界面(效果圖中多少秒后重試的秒鐘)
}
}
三,在監聽方法中啟動定時器或者取消定時器
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.code_發送:
//新建定時器對象,同時傳入倒計時的總時間和時間間隔
MyCountDownTimer timer = new MyCountDownTimer(60, 1);
timer.start();//啟動定時器
code_發送.setEnabled(false);//將發送按鈕設置為不可點擊
break;
case R.id.code_取消:
timer.cancel();//取消當前任務
break;
default:
break;
}
}
如果還有什么不懂的地方可在博客下方留言。