Android快速点击事件,导致多次触发效果,朋友给的方法感觉是最好的,如下。
<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">package com.xxx.xxxx.listeners;</span>
import android.view.View;public abstract class SnailOnClickListener implements View.OnClickListener{ private long lastEventTime = 0 ; private long currentEventTime = 0; private int interval = 100; public abstract void onViewClick(View view); @Override public void onClick(View v) { currentEventTime = System.currentTimeMillis(); if(currentEventTime - lastEventTime < interval ){ return ; }else{ lastEventTime = currentEventTime ; onViewClick(v); } }}
使用代码:
btn.setOnClickListener(new SnailOnClickListener() {
@Override
public void onViewClick(View view) {
//点击事件
}
});
其次,工具类方法,比上边直接实现接口的方法需要多写个判断,感觉,不如上边的方法来的简便。
/**
* 判断指定时间内双击
*
* @param clickTime
* @return
*/
public static boolean isFastDoubleClick(int clickTime) {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (0 < timeD && timeD < clickTime) {
return true;
}
lastClickTime = time;
return false;
}
使用方法:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!CommonUtils.isFastDoubleClick(1000)){
//点击事件
}
}
});