1、拦截
- FastClickUtil.java ``` package com.toycloud.androiddemo;
import android.util.Log;
/**
- Description: 防止点击事件过快
- Author: wangchun
- Date: 2020/9/30
- Time: 9:43 AM */
public class FastClickUtil {
private static final String TAG = "FastClickUtil";
/**
* 两次点击的时间间隔
*/
private static final int MIN_CLICK_DELAY_TIME = 500;
/**
* 上次点击的时间戳
*/
private static long mLastClickTime;
public static boolean isClickFast() {
return isClickFast(MIN_CLICK_DELAY_TIME);
}
public static boolean isClickFast(int clickTime) {
long cur = System.currentTimeMillis();
if (cur > mLastClickTime && cur - mLastClickTime < clickTime) {
Log.d(TAG, "isClickFast: true");
return true;
} else {
mLastClickTime = cur;
return false;
}
}
}
- 用法
view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (FastClickUtil.isClickFast()){ return; } } });
<a name="DOwwv"></a>
## 2、自定义Listener
- FastClickListener.java
package com.toycloud.androiddemo;
import android.util.Log; import android.view.View;
/**
- Description: 防止点击过快
- Author: wangchun
- Date: 2020/9/30
- Time: 9:58 AM */
public abstract class FastClickListener implements View.OnClickListener {
private static final String TAG = "FastClickListener";
/**
* 两次点击的时间间隔
*/
private static final int MIN_CLICK_DELAY_TIME = 500;
/**
* 上次点击的时间戳
*/
private static long mLastClickTime;
@Override
public void onClick(View view) {
long currentTime = System.currentTimeMillis();
if (currentTime - mLastClickTime > MIN_CLICK_DELAY_TIME) {
mLastClickTime = currentTime;
onFastClickListener(view);
} else {
Log.d(TAG, "click fast");
}
}
public abstract void onFastClickListener(View view);
}
- 用法
view.setOnClickListener(new FastClickListener() { @Override public void onFastClickListener(View view) { Log.e(TAG, “onFastClickListener: “ ); } }); ```