Android 防止按鈕控件被重複點擊

在開發中經常會遇到這樣的情況,一個按鈕點擊後會彈出Toast或者Dialog,如果快速重複地點擊,則Toast則會重複地出現. 而我們想要的效果是一定時間內的點擊只生效一次,或者說這種快速且重複的點擊爲無效點擊.


點擊進入: 品牌服飾鞋包9.9元特價包郵搶購:http://shop109590806.taobao.com/


解決的思路如下:

 1. 需要定義一個全局變量 lastClickTime, 用來記錄最後點擊的時間.

 2. 每次點擊前需要進行判斷, 用lastClickTime 和當前時間想比較,並且更新最後點擊時間,若小於臨界值,則算無效點擊,不觸發事件

 注:其實用時間去判斷重複點擊,更多的是防止短時間大量重複或者也可是說是無效的操作, 而間隔時間要根據具體項目中需求情況而定. 

下面請看代碼:

工具類:

 

[java] view plaincopy
  1. public class CommonUtils {  
  2.     private static long lastClickTime;  
  3.     public static boolean isFastDoubleClick() {  
  4.         long time = System.currentTimeMillis();  
  5.         long timeD = time - lastClickTime;  
  6.         if ( 0 < timeD && timeD < 800) {     
  7.             return true;     
  8.         }     
  9.         lastClickTime = time;     
  10.         return false;     
  11.     }  
  12. }  

 

控件點擊的處理:

 

[java] view plaincopy
  1. public void onClick(View v) {    
  2.     if (CommonUtils.isFastDoubleClick()) {    
  3.         return;    
  4.     }else{  
  5.         //彈出Toast或者Dialog  
  6.    }  
  7.  }    

這樣,兩次點擊時間相隔小於800ms,便不會觸發事件,具體的臨界時間可以根據需求自己修改.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章