在開發中常常會遇到這樣的狀況,一個按鈕點擊後會彈出Toast或者Dialog,若是快速重複地點擊,則Toast則會重複地出現. 而咱們想要的效果是必定時間內的點擊只生效一次,或者說這種快速且重複的點擊爲無效點擊.spa
解決的思路以下: code
1. 須要定義一個全局變量 lastClickTime, 用來記錄最後點擊的時間. blog
2. 每次點擊前須要進行判斷, 用lastClickTime 和當前時間想比較,而且更新最後點擊時間,若小於臨界值,則算無效點擊,不觸發事件 事件
下面請看代碼:開發
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; } }
控件點擊的處理:ast
public void onClick(View v) { if (Utils.isFastDoubleClick()) { return; }else{ //彈出Toast或者Dialog } }