安卓開發之封裝顯示倒數計時按鈕控制元件
實現倒數計時邏輯比較簡單,使用了CountDownTimer來計時(原始碼考慮了執行緒安全問題)。
對使用邏輯封裝成了一個自定義控制元件TimerButton。
原始碼:
public class TimerButton extends Button {
private String afterText = "重發";
private int ms = 10000;
public TimerButton(Context context) {
super(context);
}
public TimerButton(Context context, AttributeSet attrs) {
this(context,attrs,0);
}
public TimerButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.timerbutton);
afterText = typedArray.getString(R.styleable.timerbutton_afterText);
ms = typedArray.getInt(R.styleable.timerbutton_ms,10000);
typedArray.recycle();
}
public void init(String afterText,int ms){
this.afterText = afterText;
this.ms = ms;
}
public void startTimer(){
TimerButton.this.setEnabled(false);
new CountDownTimer(ms+1000,1000){
@Override
public void onTick(long finish) {
TimerButton.this.setText(finish/1000+" s");
}
@Override
public void onFinish() {
TimerButton.this.setEnabled(true);
TimerButton.this.setText(afterText);
}
}.start();
}
}
使用:
private TimerButton timerButton;
timerButton = (TimerButton) findViewById(R.id.timer_Button);
timerButton.setText("獲取驗證碼")
timerButton.init("重發",10000);
timerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
timerButton.startTimer();
//TODO YOURS
//Toast.makeText(MainActivity.this,"TODO",Toast.LENGTH_SHORT).show();
}
});
Github:TimerButton
相關文章
- 安卓開發學習-按鈕控制元件安卓控制元件
- ReactiveCocoa 實現 按鈕倒數計時React
- JavaScript簡訊重發按鈕可用倒數計時JavaScript
- 安卓快速開發框架(十)XBaseAndroid倒數計時,定時器安卓框架Android定時器
- Js Jquery 實現的按鈕倒數計時整理JSjQuery
- vue 封裝按鈕Vue封裝
- 傳送簡訊驗證,後按鈕倒數計時,防止重新整理倒數計時失效
- 面向Vue新人:寫一個簡單的倒數計時按鈕Vue
- Flutter 驗證碼倒數計時Widget封裝Flutter封裝
- 視訊直播系統原始碼,倒數計時顯示,商品秒殺倒數計時原始碼
- 直播軟體app開發,產品頁面顯示折扣倒數計時一欄APP
- 在SAP WebClient UI裡顯示倒數計時的UIWebclientUI
- 【JavaScript】使用js實現傳送郵箱驗證碼,按鈕倒數計時JavaScriptJS
- 計算時間差,頁面倒數計時,安卓與ios相容問題安卓iOS
- 微信開發之小程式實現倒數計時
- win10顯示休眠按鈕設定方法 win10電源怎麼顯示休眠按鈕Win10
- Axure之倒數計時效果
- 短視訊軟體開發,按鈕側滑顯示各個選項
- iOS 左滑按鈕(UITableViewRowAction)顯示圖片iOSUIView
- winform的bindingNavigator上按鈕顯示問題ORM
- Qt自定義開關按鈕控制元件QT控制元件
- VsCode顯示左邊摺疊程式碼+-按鈕VSCode
- 線上直播系統原始碼,開屏首頁廣告點選跳過按鈕跳過倒數計時原始碼
- RadioButton文字按鈕間距設定,按鈕在文字右端顯示,RadioButton 右端對齊
- 倒數計時應用定製化開發
- 倒數計時
- 安卓開發——ListView控制元件(初始化ListView、列表重新整理、長按新增menu)安卓View控制元件
- 安卓模擬器顯示offline安卓
- QT時鐘控制元件顯示QT控制元件
- 直播系統開發,Flutter建立圓圈圖示按鈕Flutter
- Dcat Admin 修改全域性行操作按鈕顯示方式為文字+圖示
- Revit二次開發知識分享(八)控制顯示隱藏的圖元按鈕
- 《A3!滿開劇團》公演倒數計時!9月29日安卓端不限號測試安卓
- vmware安裝或解除安裝時,顯示無法開啟登錄檔項
- ESP32 開發筆記(四)LVGL控制元件學習 3 Button 按鈕控制元件筆記控制元件
- 點選同一按鈕顯示隱藏切換
- Linux vscode右上角佈局按鈕顯示 & 頂部不顯示搜尋欄LinuxVSCode
- JavaScript倒數計時JavaScript
- 商城倒數計時