Android 防止在N秒內產生多次點選事件(乾貨)
阿新 • • 發佈:2019-02-20
/** * Created by 蔣 on 2018/8/20. * 防止多次點選的單擊事件 */ public abstract class NoMoreClickListener implements View.OnClickListener { private int MIN_CLICK_DELAY_TIME = 3000;//多少秒點選一次 預設3秒 private long lastClickTime = 0; public NoMoreClickListener() { } /** * 設定多少秒之內 * * @param time */ public NoMoreClickListener(int time) { this.MIN_CLICK_DELAY_TIME = time; } @Override public void onClick(View view) { long currentTime = Calendar.getInstance().getTimeInMillis(); if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) { lastClickTime = currentTime; OnMoreClick(view); } else { OnMoreErrorClick(); } } /** * 在N秒之內的 ==1 次點選回撥次方法 * * @param view */ public void OnMoreClick(View view) { } /** * 在N秒之內的 >= 2次點選回撥次方法 * */ public void OnMoreErrorClick() { } }
使用:
btn.setOnClickListener(new NoMoreClickListener(2500) {
@Override
public void OnMoreClick(View view) {
super.OnMoreClick(view);
//平常的單擊事件處理
}
@Override
public void OnMoreErrorClick() {
//在N秒內點選大於2次會回撥此方法
}
});