Android 防止多次重复点击的三种方法的示例
在项目中经常会遇到对按钮、自定义控件的Item等防止多次重复的点击的问题,下面做一个小结。
方法1:使用RxJava的throttleFirst()
具体代码如下:
/** *防止重复点击 * *@paramtarget目标view *@paramlistener监听器 */ publicstaticvoidpreventRepeatedClick(finalViewtarget,finalView.OnClickListenerlistener){ RxView.clicks(target).throttleFirst(1,TimeUnit.SECONDS).subscribe(newObserver
上述代码中,利用throttleFirst方法,取1秒内的第一次点击进行响应。
方法2:利用系统时间差
//全局定义 privatelonglastClickTime=0L; privatestaticfinalintFAST_CLICK_DELAY_TIME=500;//快速点击间隔 //在设置Item的监听时 item.setOnItemClickListener(xxx){ if(System.currentTimeMillis()-lastClickTime该方法主要针对于自定义控件的点击。
方法3:工具类,用于判断是否快速点击
该方法与方法2的原理类似:
privatestaticfinalintMIN_DELAY_TIME=1000;//两次点击间隔不能少于1000ms privatestaticlonglastClickTime; publicstaticbooleanisFastClick(){ booleanflag=true; longcurrentClickTime=System.currentTimeMillis(); if((currentClickTime-lastClickTime)>=MIN_DELAY_TIME){ flag=false; } lastClickTime=currentClickTime; returnflag; }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。