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)){
//點擊事件
}
}
});