1. 程式人生 > >Android:防止過快點擊造成多次事件 問題

Android:防止過快點擊造成多次事件 問題

@override onclick 點擊 err current calendar logs ide pub

自定義一個NoDoubleClickListener,繼承自OnClickListener:
public abstract class NoDoubleClickListener implements View.OnClickListener {
    public static final int MIN_CLICK_DELAY_TIME = 1000;
    private long lastClickTime = 0;

    @Override
    public void onClick(View v) {
        long currentTime = Calendar.getInstance().getTimeInMillis();
        if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) {
            lastClickTime = currentTime;
            onNoDoubleClick(v);
        }
    }

    protected abstract void onNoDoubleClick(View v);

}
在設置點擊事件時用NoDoubleClickListener替換OnClickListener,並且實現方法onNoDoubleClick替換onClick即可:
 btnPay.setOnClickListener(new NoDoubleClickListener() {
          @Override
          protected void onNoDoubleClick(View v) {
              startPay();
          }
      });

    }

Android:防止過快點擊造成多次事件 問題