1. 程式人生 > >指定控制元件的防止重複點選判斷

指定控制元件的防止重複點選判斷

日常開發中,一般網路請求會做一些按鈕重複點選判斷(比如登入時點選登入按鈕),為了方便,可以把方法寫到基類裡面,這樣繼承類就可以直接用了。當然如果放到utils中也行。

廢話不多少,直接上程式碼;

變數:

/**
 * 防止過快點選事件
*/
// DIFF:兩次點選按鈕之間的點選間隔不能少於的毫秒數
private static long DIFF = 5000;
private static long lastClickTime = 0;
private static int lastButtonId = -1;

方法:

/**
 * @author liu
 * 防止按鈕多次點選,預設時間間隔為DIFF5000毫秒
* 
@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 boolean
isFastDoubleClick2(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; }