Android組件防止重複點擊處理

Android組件防止重複點擊處理

Android button等組件很多情況需要過濾多餘的重複點擊事件,節省重複網絡訪問等定製化邏輯處理

首先定義一個簡單的抽象類:

/**
 * 防止重複點擊
 */
public abstract class NoRepeatClickListener implements OnClickListener {
   //默認最小間隔時間(可根據需求自行修改)
    public static final int MIN_CLICK_DELAY_TIME = 1300;
    private long lastClickTime = 0;
    private int minDelayTime = MIN_CLICK_DELAY_TIME;
    
     /**修改默認最小間隔時間
     * @param minDelayTime 
     */
    public NoRepeatClickListener() {

    }

    public NoRepeatClickListener(int minDelayTime) {
        this.minDelayTime = minDelayTime;
    }

    protected abstract void onNoRepeatClick(View v);

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

調用如下使用:

   mBtnBind.setOnClickListener(new NoRepeatClickListener(4000) {
            @Override
            protected void onNoRepeatClick(View v) {
              //點擊事件執行代碼
            }
        });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章