码迷,mamicode.com
首页 > 移动开发 > 详细

Android 防止控件被重复点击

时间:2015-04-11 13:02:47      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

由于手机反应慢还是神马原因,用户对一个button 可快速的多次点击。那么 可能出现问题: 比如 多次提交数据...

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

 

解决的思路如下:

 1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.

 2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件

 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 }
1 public void onClick(View v) {  
2     if (Utils.isFastDoubleClick()) {  
3         return;  
4     }else{
5         //弹出Toast或者Dialog
6    }
7 &nbsp;}  

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

Android 防止控件被重复点击

标签:

原文地址:http://www.cnblogs.com/androidsj/p/4417483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!