首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android 防止控件被反复点击

2012-11-23 
Android 防止控件被重复点击在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速

Android 防止控件被重复点击

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


解决的思路如下:

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

 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;       }}

控件点击的处理:

public void onClick(View v) {      if (Utils.isFastDoubleClick()) {          return;      }else{        //弹出Toast或者Dialog   } }  

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



2楼manymore13昨天 16:07
小技巧,不错!谢谢分享
1楼C10141015昨天 09:08
我正需要哈,学习了。。对我这种新手很有用。。

热点排行