多次点击按钮 多次打开相同界面问题 或者多次请求接口给后台带来压力
复制工具类可直接使用,效果明显,简单明了。
方法一
1、工具类的制作
import android.view.View;
import java.util.Calendar;
public abstract class NoDoubleClickListener implements View.OnClickListener {
public static final int MIN_CLICK_DELAY_TIME = 1000;//这里设置不能超过多长时间
private long lastClickTime = 0;
protected abstract void onNoDoubleClick(View v);
@Override
public void onClick(View v) {
long currentTime = Calendar.getInstance().getTimeInMillis();
if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) {
lastClickTime = currentTime;
onNoDoubleClick(v);
}
}
}
2、点击事件处的使用
//给submitButton设置点击事件时用NoDoubleClickListener代替OnClickListener,并且实现方法onNoDoubleClick代替onClick即可,像这样:
submitButton.setOnClickListener(new NoDoubleClickListener() {
@Override
public void onNoDoubleClick(View v) {
submitOrder();
}
});
方法二
既然是为了防止连续点击,可以判断该按钮两次点击的时间间隔,如果两个点击的时间差小于某一个规定值,则不响应点击事件。
具体代码思路如下:
1、首先写一个公共的方法,用于判断两次点击时间差。
public class Utils {
private static long lastClickTime;
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
if ( time - lastClickTime < 500) {
return true;
}
lastClickTime = time;
return false;
}
}
2、然后在按钮的onClick()方法中调用即可。
public void onClick(View v) {
if (Utils.isFastDoubleClick()) {
return;
}
//这里写点击想要做的事情<span style="white-space:pre"> </span>
}