Android 防止控件被重复点击

原创 2013年12月04日 22:51:19

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


解决的思路如下:

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

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

 注:其实用时间去判断重复点击,更多的是防止短时间大量重复或者也可是说是无效的操作, 而间隔时间要根据具体项目中需求情况而定. 这里其实还有一种更好的做法,就是利用java中的信号量Semaphore,以后有时间我会介绍这种方法.

下面请看代码:

工具类:

  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) {     
  1. public void onClick(View v) {    
  2.     if (Utils.isFastDoubleClick()) {    
  3.         return;    
  4.     }else{  
  5.         //弹出Toast或者Dialog  
  6.    }  
  7.  }  </pre><br>  
  8. 这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.


http://blog.csdn.net/t12x3456/article/details/8164237

【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮...
  • zhufuing
  • zhufuing
  • 2016年11月03日 15:15
  • 11968

Android 防止一个控件被过快重复点击

在android开发中,为防止用户过快点击,而我们的数据并没有及时响应的情况时,我们需要确保用户的有效点击,即在有效时间内只记下用户的一次点击事件   [java] ...
  • wjw_java
  • wjw_java
  • 2016年07月14日 15:16
  • 482

AOP实现防止连续点击

防止连续点击的实现方式有很多种,比如,在所有的onclick里面加上防多次点击的代码,或者定义一个新的OnClickListener,在里面加上防多次点击的代码,然后项目中的所有OnClickList...
  • vonnie_jade
  • vonnie_jade
  • 2017年04月03日 21:44
  • 245

Android 防止控件被重复点击,多次提交

Android 防止控件被重复点击,多次提交
  • u014120638
  • u014120638
  • 2016年04月05日 16:48
  • 2007

Android中防止重复点击的小技巧

PS: 好久没有写过博客了,不经意间看到这篇在我接触Android不久时写的文章,现在看来确实挺粗糙的(有点看不下去了。。),这里写写我刚想到的另一种思路吧...
  • u012975705
  • u012975705
  • 2015年11月26日 20:45
  • 4764

Android 防止短时间内重复点击技巧

在Android开发中,当完成一款软件时,测试人员会对软件进行测试,本来可以正常运行的软件在测试人员里就可以出现意想不到的bug,其中一个比较常见的问题就是短时间内重复点击一个按钮,本来正常点击只执行...
  • k763925053
  • k763925053
  • 2014年10月22日 16:16
  • 1715

RxAndroid 防止按钮短时间内被重复点击多次,进行限制

0.原生的点击事件 mButton.setOnClickListener(new View.OnClickListener() { @Override public...
  • PowerSen
  • PowerSen
  • 2017年11月05日 20:33
  • 333

Android-防止用户快速点击和多控件点击

Android-防止用户快速点击和多点触控 1.为什么要防止用户重复点击 2.如何防止...
  • Android_yh
  • Android_yh
  • 2016年06月19日 14:02
  • 4178

Android:防止过快点击造成多次事件

onClick事件是Android开发中最常见的事件,本文介绍了一个小技巧,能防止view被误操作快速重复点击时,而重复产生事件。...
  • barryhappy
  • barryhappy
  • 2015年03月20日 23:57
  • 42984

RxAndroid防止按钮短时间内被重复点击多次

导入依赖 compile ‘io.reactivex:rxandroid:1.2.1’ compile ‘io.reactivex:rxjava:1.1.6’ 添加权限 //获得写sd卡的权限 /...
  • h_sq18
  • h_sq18
  • 2018年01月07日 19:01
  • 58
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 防止控件被重复点击
举报原因:
原因补充:

(最多只允许输入30个字)