安卓開發之封裝顯示倒數計時按鈕控制元件
實現倒數計時邏輯比較簡單,使用了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
相關文章
- JavaScript簡訊重發按鈕可用倒數計時JavaScript
- 安卓開發學習-按鈕控制元件安卓控制元件
- ReactiveCocoa 實現 按鈕倒數計時React
- Js Jquery 實現的按鈕倒數計時整理JSjQuery
- 按鈕倒數計時可用效果例項程式碼
- jQuery實現的按鈕可用倒數計時效果jQuery
- 按鈕倒數計時指定秒數可用程式碼例項
- 傳送簡訊驗證,後按鈕倒數計時,防止重新整理倒數計時失效
- vue 封裝按鈕Vue封裝
- 安卓快速開發框架(十)XBaseAndroid倒數計時,定時器安卓框架Android定時器
- 視訊直播系統原始碼,倒數計時顯示,商品秒殺倒數計時原始碼
- 註冊協議閱讀倒數計時按鈕可用程式碼協議
- 面向Vue新人:寫一個簡單的倒數計時按鈕Vue
- Flutter 驗證碼倒數計時Widget封裝Flutter封裝
- 直播軟體app開發,產品頁面顯示折扣倒數計時一欄APP
- 微信開發之小程式實現倒數計時
- js 根據開始日期和結束日期顯示倒數計時JS
- 在SAP WebClient UI裡顯示倒數計時的UIWebclientUI
- 【JavaScript】使用js實現傳送郵箱驗證碼,按鈕倒數計時JavaScriptJS
- js按鈕點選後需要倒數計時才能可能用程式碼例項JS
- 自定義控制元件實踐-倒數計時控制元件控制元件
- 線上直播系統原始碼,開屏首頁廣告點選跳過按鈕跳過倒數計時原始碼
- win10顯示休眠按鈕設定方法 win10電源怎麼顯示休眠按鈕Win10
- 短視訊軟體開發,按鈕側滑顯示各個選項
- 倒數計時應用定製化開發
- iOS 左滑按鈕(UITableViewRowAction)顯示圖片iOSUIView
- 安卓Android 按鈕案例安卓Android
- Qt自定義開關按鈕控制元件QT控制元件
- 微信小程式之倒數計時元件微信小程式元件
- jquery點選按鈕顯示和隱藏DIvjQuery
- 計算時間差,頁面倒數計時,安卓與ios相容問題安卓iOS
- Android 自定義dialog,實現右上角顯示一個控制元件按鈕Android控制元件
- JavaScript倒數計時JavaScript
- js——倒數計時JS
- JS倒數計時JS
- 直播系統開發,Flutter建立圓圈圖示按鈕Flutter
- QT時鐘控制元件顯示QT控制元件
- 點選按鈕動畫方式隱藏和顯示div動畫