指定控制元件的防止重複點選判斷
阿新 • • 發佈:2019-01-05
日常開發中,一般網路請求會做一些按鈕重複點選判斷(比如登入時點選登入按鈕),為了方便,可以把方法寫到基類裡面,這樣繼承類就可以直接用了。當然如果放到utils中也行。
廢話不多少,直接上程式碼;
變數:
/** * 防止過快點選事件 */ // DIFF:兩次點選按鈕之間的點選間隔不能少於的毫秒數 private static long DIFF = 5000; private static long lastClickTime = 0; private static int lastButtonId = -1;
方法:
/** * @author liu * 防止按鈕多次點選,預設時間間隔為DIFF:5000毫秒 *@param buttonId 控制元件的id,用於比對是否同一按鈕多次點選 * @return */ public static boolean isFastDoubleClick(int buttonId) { long currentTime = System.currentTimeMillis(); long timeInterval=currentTime-lastClickTime; if (lastButtonId == buttonId && lastClickTime > 0 && timeInterval < DIFF) { LogUtil.e("isFastDoubleClick", "短時間內按鈕多次觸發"); return true; } lastClickTime = currentTime; lastButtonId = buttonId; return false; } /** * @author liu * 防止按鈕多次點選,可指定多次點選之間時間間隔diff * @param buttonId 控制元件的id,用於比對是否同一按鈕多次點選 * @param diff 指定點選之間時間間隔 * @return */ public static booleanisFastDoubleClick2(int buttonId,long diff) { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; long timeInterval=System.currentTimeMillis()-lastClickTime; if (lastButtonId == buttonId && lastClickTime > 0 && timeInterval < diff) { LogUtil.e("isFastDoubleClick", "短時間內按鈕多次觸發"); return true; } lastClickTime = time; lastButtonId = buttonId; return false; }