Android 中倒計時驗證兩種常用方式實例詳解
Android 中倒計時驗證兩種常用方式實例詳解
短信驗證碼功能,這里總結了兩種常用的方式,可以直接拿來使用。看圖:

說明:這里的及時從10開始,是為了演示的時間不要等太長而修改的。
1、第一種方式:Timer
/**
* Description:自定義Timer
* <p>
* Created by Mjj on 2016/12/4.
*/
public class TimeCount extends CountDownTimer {
private Button button;
//參數依次為總時長,和計時的時間間隔
public TimeCount(Button button, long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
this.button = button;
}
//計時過程顯示
@Override
public void onTick(long millisUntilFinished) {
String time = "(" + millisUntilFinished / 1000 + ")秒";
setButtonInfo(time, "#c1c1c1", false);
}
//計時完畢時觸發(fā)
@Override
public void onFinish() {
setButtonInfo("重新獲取", "#f95353", true);
}
/**
* 驗證按鈕在點擊前后相關設置
*
* @param content 要顯示的內容
* @param color 顏色值
* @param isClick 是否可點擊
*/
private void setButtonInfo(String content, String color, boolean isClick) {
button.setText(content);
button.setBackgroundColor(Color.parseColor(color));
button.setClickable(isClick);
}
}
說明:根據自己的需求,在這里修改背景顏色和不同狀態(tài)顯示文字即可,在需要監(jiān)聽的按鈕下直接調用new TimerCount(xxx,xxx,xxx).start()即可。
2、第二種方式:Handler
/**
* 第二種方式:使用Handler
* <p>
* 靜態(tài)內部類:避免內存泄漏
*/
private static class MyHandler extends Handler {
private final WeakReference<MainActivity> weakReference;
public MyHandler(MainActivity activity) {
weakReference = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
MainActivity activity = weakReference.get();
if (activity != null) {
switch (msg.what) {
case 0:
if (msg.arg1 == 0) {
btn2.setText("重新獲取");
btn2.setBackgroundColor(Color.parseColor("#f95353"));
btn2.setClickable(true);
} else {
btn2.setText("(" + msg.arg1 + ")秒");
btn2.setBackgroundColor(Color.parseColor("#c1c1c1"));
btn2.setClickable(false);
}
break;
}
}
}
}
/**
* 監(jiān)聽按鈕下直接調用即可
*/
private void sendMessageClick() {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 59; i >= 0; i--) {
Message msg = myHandler.obtainMessage();
msg.arg1 = i;
myHandler.sendMessage(msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
說明:此種方式采用的handler實時接收消息來設置Button的狀態(tài),對于消息的發(fā)送用的是sendMessage方式,也可以使用post方式。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android實現(xiàn)發(fā)送短信驗證碼倒計時功能示例
- Android自定義控件實現(xiàn)驗證碼倒計時
- Android利用CountDownTimer實現(xiàn)點擊獲取驗證碼倒計時效果
- Android手機注冊登錄時獲取驗證碼之后倒計時功能(知識點總結)
- Android短信驗證碼倒計時驗證的2種常用方式
- Android自定義Chronometer實現(xiàn)短信驗證碼秒表倒計時功能
- Android自定義View獲取注冊驗證碼倒計時按鈕
- Android獲取驗證碼倒計時顯示效果
- Android賬號注冊實現(xiàn)點擊獲取驗證碼倒計時效果
- Android開發(fā)之獲取短信驗證碼后按鈕背景變化并且出現(xiàn)倒計時
相關文章
解析Android應用啟動后自動創(chuàng)建桌面快捷方式的實現(xiàn)方法
和IOS開發(fā)和Windows Phone開發(fā)相比,Android是開放的,Android上的開發(fā)也相對更加靈活,能夠做很多事情。有的朋友會發(fā)現(xiàn),在某些Android應用安裝以后,第一次運行,就會在桌面創(chuàng)建快捷方式。這是如何做到的呢2013-05-05
Android GestureDetector實現(xiàn)手勢滑動效果
這篇文章主要為大家詳細介紹了Android GestureDetector實現(xiàn)手勢滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05
Android實現(xiàn)可瀏覽和搜索的聯(lián)系人列表
這篇文章主要為大家詳細介紹了Android實現(xiàn)可瀏覽和搜索的聯(lián)系人列表的相關代碼,瀏覽所有聯(lián)系人和根據名稱搜索聯(lián)系人,感興趣的小伙伴們可以參考一下2016-07-07
Android在Fragment中實現(xiàn)監(jiān)聽觸摸事件
這篇文章主要給大家介紹了Android在Fragment中實現(xiàn)監(jiān)聽觸摸事件的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
Android App中使用AudioManager類來編寫音頻播放器
這篇文章主要介紹了Android App中使用AudioManager類來編寫音樂播放器的方法,文中舉了一個簡單的例子實現(xiàn)了基礎的播放暫停和靜音等功能,需要的朋友可以參考下2016-04-04

