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;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。