Android 防止控件被重复点击

来源:互联网 发布:免费开源o2o系统源码 编辑:程序博客网 时间:2024/05/21 03:24
Android 防止控件被重复点击
由于手机反应慢还是神马原因,用户对一个button 可快速的多次点击。那么 可能出现问题: 比如 多次提交数据...

在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.


解决的思路如下:

 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 (Utils.isFastDoubleClick()) {    
  3.         return;    
  4.     }else{  
  5.         //弹出Toast或者Dialog  
  6.    }  
  7.  }    

这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.
0 0
原创粉丝点击