避免控件多次点击

在项目中,很多按钮控件都应该避免短时间内多次点击,转载一个可用的工具类 ButtonUtils

  public class ButtonUtils {
  private static long lastClickTime = 0;
  private static long DIFF = 1000;
  private static int lastButtonId = -1;
 
  /**
   * 判断两次点击的间隔,如果小于1000,则认为是多次无效点击
   *
   * @return
   */
  public static boolean isFastDoubleClick() {
    return isFastDoubleClick(-1, DIFF);
  }
 
  /**
   * 判断两次点击的间隔,如果小于1000,则认为是多次无效点击
   *
   * @return
   */
  public static boolean isFastDoubleClick(int buttonId) {
    return isFastDoubleClick(buttonId, DIFF);
  }
 
  /**
   * 判断两次点击的间隔,如果小于diff,则认为是多次无效点击
   *
   * @param diff
   * @return
   */
  public static boolean isFastDoubleClick(int buttonId, long diff) {
    long time = System.currentTimeMillis();
    long timeD = time - lastClickTime;
    if (lastButtonId == buttonId && lastClickTime > 0 && timeD < diff) {
      Log.v("isFastDoubleClick", "短时间内按钮多次触发");
      return true;
    }
    lastClickTime = time;
    lastButtonId = buttonId;
    return false;
  }  
 
}

在需要时调用

            if (!ButtonUtils.isFastDoubleClick(v.getId())) {
                startActivity(miniProgram, activity, context);
            }
posted @ 2020-07-31 15:13  TzzTZhj  阅读(6)  评论(0)    收藏  举报