1. 程式人生 > >Android 防止控件被重復點擊

Android 防止控件被重復點擊

當前時間 我們 一個 效果 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 防止控件被重復點擊