Android 防止控件被重复点击
由于手机反应慢还是神马原因,用户对一个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 }
这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。