避免快速點擊帶來的重複點擊

在開發中常常會遇到這樣的狀況,一個按鈕點擊後會彈出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
   }
 }  
相關文章
相關標籤/搜索