1. 自定义的View.OnClickListener
我们可以创建一个自定义的点击监听器,其中包含一个防止重复点击的逻辑:
public abstract class OnSingleClickListener implements View.OnClickListener {
// 默认间隔时间
private static final long DEFAULT_INTERVAL = 1000L;
private long mLastClickTime = 0;
private long mInterval = DEFAULT_INTERVAL;
public OnSingleClickListener() {}
public OnSingleClickListener(long interval) {
this.mInterval = interval;
}
@Override
public final void onClick(View v) {
long currentClickTime = System.currentTimeMillis();
if (currentClickTime - mLastClickTime > mInterval) {
mLastClickTime = currentClickTime;
onSingleClick(v);
}
}
public abstract void onSingleClick(View v);
}
button.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
// 处理点击事件
}
});
2. Handler
private static final long CLICK_INTERVAL = 1000L;
private boolean isClicking = false;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isClicking) {
isClicking = true;
// 处理点击事件
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isClicking = false;
}
}, CLICK_INTERVAL);
}
}
});
自定义单击监听器与延迟处理:防止重复点击
文章介绍了如何创建一个自定义的View.OnClickListener,包含防止重复点击的逻辑,以及使用Handler实现延迟执行点击事件。两种方法都涉及时间间隔管理和状态控制。
565

被折叠的 条评论
为什么被折叠?



