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;@Overridepublic 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: “ ); } }); ```
