Android 防止控件被重复点击
2012-11-09 08:51
267 查看
在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.
解决的思路如下:
1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.
2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件
注:其实用时间去判断重复点击,更多的是防止短时间大量重复或者也可是说是无效的操作, 而间隔时间要根据具体项目中需求情况而定. 这里其实还有一种更好的做法,就是利用java中的信号量Semaphore,以后有时间我会介绍这种方法.
下面请看代码:
工具类:
控件点击的处理:
这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.
解决的思路如下:
1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.
2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件
注:其实用时间去判断重复点击,更多的是防止短时间大量重复或者也可是说是无效的操作, 而间隔时间要根据具体项目中需求情况而定. 这里其实还有一种更好的做法,就是利用java中的信号量Semaphore,以后有时间我会介绍这种方法.
下面请看代码:
工具类:
public class CommonUtils { private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if ( 0 < timeD && timeD < 800) {
lastClickTime = time;return true; } return false; }}
控件点击的处理:
public void onClick(View v) { if (Utils.isFastDoubleClick()) { return; }else{ //弹出Toast或者Dialog } }
这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.
相关文章推荐
- Android 防止控件被重复点击
- Android 防止控件被重复点击 导致 界面无法被点击
- Android 防止控件被重复点击
- 【Android笔记】Android控件防止被重复点击
- Android 防止一个控件被过快重复点击
- Android 防止控件被重复点击
- Android 防止控件被重复点击
- 防止android控件点击事件重复提交
- Android 防止按钮控件被重复点击
- Android 防止控件被重复点击
- Android 防止控件被重复点击
- Android 防止一个控件被过快重复点击
- Android 防止控件被重复点击
- Android 防止控件被重复点击
- Android 防止控件被重复点击
- Android 防止控件被重复点击
- Android 两种 防止控件重复点击 多次提交
- android 防止对控件的重复点击和同时点击多个控件
- Android 防止控件被重复点击,多次提交
- Android 防止按钮控件被重复点击.