Android组件防止重复点击处理
Android button等组件很多情况需要过滤多余的重复点击事件,节省重复网络访问等定制化逻辑处理
首先定义一个简单的抽象类:
/**
* 防止重复点击
*/
public abstract class NoRepeatClickListener implements OnClickListener {
//默认最小间隔时间(可根据需求自行修改)
public static final int MIN_CLICK_DELAY_TIME = 1300;
private long lastClickTime = 0;
private int minDelayTime = MIN_CLICK_DELAY_TIME;
/**修改默认最小间隔时间
* @param minDelayTime
*/
public NoRepeatClickListener() {
}
public NoRepeatClickListener(int minDelayTime) {
this.minDelayTime = minDelayTime;
}
protected abstract void onNoRepeatClick(View v);
@Override
public void onClick(View v) {
long currentTime = Calendar.getInstance().getTimeInMillis();
if (currentTime - lastClickTime > minDelayTime) {
lastClickTime = currentTime;
onNoRepeatClick(v);
}
}
}
调用如下使用:
mBtnBind.setOnClickListener(new NoRepeatClickListener(4000) {
@Override
protected void onNoRepeatClick(View v) {
//点击事件执行代码
}
});