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 {

  1. private static final String TAG = "FastClickUtil";
  2. /**
  3. * 两次点击的时间间隔
  4. */
  5. private static final int MIN_CLICK_DELAY_TIME = 500;
  6. /**
  7. * 上次点击的时间戳
  8. */
  9. private static long mLastClickTime;
  10. public static boolean isClickFast() {
  11. return isClickFast(MIN_CLICK_DELAY_TIME);
  12. }
  13. public static boolean isClickFast(int clickTime) {
  14. long cur = System.currentTimeMillis();
  15. if (cur > mLastClickTime && cur - mLastClickTime < clickTime) {
  16. Log.d(TAG, "isClickFast: true");
  17. return true;
  18. } else {
  19. mLastClickTime = cur;
  20. return false;
  21. }
  22. }

}

  1. - 用法

view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (FastClickUtil.isClickFast()){ return; } } });

  1. <a name="DOwwv"></a>
  2. ## 2、自定义Listener
  3. - 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 {

  1. private static final String TAG = "FastClickListener";
  2. /**
  3. * 两次点击的时间间隔
  4. */
  5. private static final int MIN_CLICK_DELAY_TIME = 500;
  6. /**
  7. * 上次点击的时间戳
  8. */
  9. private static long mLastClickTime;
  10. @Override
  11. public void onClick(View view) {
  12. long currentTime = System.currentTimeMillis();
  13. if (currentTime - mLastClickTime > MIN_CLICK_DELAY_TIME) {
  14. mLastClickTime = currentTime;
  15. onFastClickListener(view);
  16. } else {
  17. Log.d(TAG, "click fast");
  18. }
  19. }
  20. public abstract void onFastClickListener(View view);

}

  1. - 用法

view.setOnClickListener(new FastClickListener() { @Override public void onFastClickListener(View view) { Log.e(TAG, “onFastClickListener: “ ); } }); ```