Android 防止控件被重復點擊
阿新 • • 發佈:2017-08-15
當前時間 我們 一個 效果 tab class 觸發 事件 stat
在開發中經常會遇到這樣的情況,一個按鈕點擊後會彈出Toast或者Dialog,如果快速重復地點擊,則Toast則會重復地出現. 而我們想要的效果是一定時間內的點擊只生效一次,或者說這種快速且重復的點擊為無效點擊.
解決的思路如下:
1. 需要定義一個全局變量 lastClickTime, 用來記錄最後點擊的時間.
2. 每次點擊前需要進行判斷, 用lastClickTime 和當前時間想比較,並且更新最後點擊時間,若小於臨界值,則算無效點擊,不觸發事件
下面請看代碼:
工具類:
[代碼]java代碼:public class CommonUtils { private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if ( 0 < timeD && timeD < 800) { return true; } lastClickTime = time; return false; } } [代碼]java代碼:public void onClick(View v) { if (Utils.isFastDoubleClick()) { return; }else{ //彈出Toast或者Dialog } }這樣,兩次點擊時間相隔小於800ms,便不會觸發事件,具體的臨界時間可以根據需求自己修改. |
Android 防止控件被重復點擊