1、ClickUtil 工具类
public class ClickUtil {
// 两次点击按钮之间的点击间隔不能少于1000 毫秒
private static final int MIN_CLICK_DELAY_TIME = 1000;
private static long lastClickTime;
// 返回 true 为点击,false 为快速点击
public static boolean isFastClick() {
boolean flag = false;
long curClickTime = System.currentTimeMillis();
if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
flag = true;
lastClickTime = curClickTime;
}
return flag;
}
}
2、OnMultiClickListener 抽象类
public abstract class OnMultiClickListener implements View.OnClickListener{
// 两次点击按钮之间的点击间隔不能少于1000毫秒
private static final int MIN_CLICK_DELAY_TIME = 1000;
private static long lastClickTime;
public abstract void onMultiClick(View v);
@Override
public void onClick(View v) {
long curClickTime = System.currentTimeMillis();
if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
// 超过点击间隔后再将lastClickTime重置为当前点击时间
lastClickTime = curClickTime;
onMultiClick(v);
}
}
}
findViewById(R.id.btn_click_more).setOnClickListener(new OnMultiClickListener() {
@Override
public void onMultiClick(View v) {
// 进行点击事件后的逻辑操作
}
});
本文介绍了两种防止用户快速重复点击按钮的技术实现:ClickUtil工具类和OnMultiClickListener抽象类。ClickUtil通过记录每次点击的时间并比较间隔来判断是否为快速点击;OnMultiClickListener则在间隔大于设定阈值时触发多次点击事件。

1278

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



