博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 防止控件被重复点击
阅读量:7108 次
发布时间:2019-06-28

本文共 855 字,大约阅读时间需要 2 分钟。

由于手机反应慢还是神马原因,用户对一个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或者Dialog6    }7  }

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

转载地址:http://mslhl.baihongyu.com/

你可能感兴趣的文章
以两军问题为背景来演绎Basic Paxos
查看>>
密码编码技术介绍笔记
查看>>
统计中位值的一般概念
查看>>
gns3模式与使用csr1000v
查看>>
感想二
查看>>
Mangos魔兽世界服务端初探(1)--游戏服务端主体结构与消息分发
查看>>
SonarQube svn 认证失败的解决办法
查看>>
C++string与VC++CString互转
查看>>
Ubuntu查找占用端口进程并删除
查看>>
Rgb to Yuv,Tuv to Rgb转换(C# emgucv)
查看>>
JSTL标签+EL表达式
查看>>
PHP中的java方式重载
查看>>
CSS3:RESET、标准注释、多屏幕尺寸兼容写法。
查看>>
小得瑟一下,记一下一个SQL语句
查看>>
uCLinux上UCD-SNMP Agent的实现
查看>>
在线时序图工具推荐
查看>>
改进的难度 产品经理
查看>>
Redis replication
查看>>
Android TextView 高度问题
查看>>
Android 热补丁动态修复框架小结
查看>>