android防止重複點擊事件的發生筆記

Android快速點擊事件,導致多次觸發效果,朋友給的方法感覺是最好的,如下。


<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">package com.xxx.xxxx.listeners;</span>
import android.view.View;public abstract class SnailOnClickListener implements View.OnClickListener{ private long lastEventTime = 0 ; private long currentEventTime = 0; private int interval = 100; public abstract void onViewClick(View view); @Override public void onClick(View v) { currentEventTime = System.currentTimeMillis(); if(currentEventTime - lastEventTime < interval ){ return ; }else{ lastEventTime = currentEventTime ; onViewClick(v); } }}


使用代碼:

btn.setOnClickListener(new SnailOnClickListener() {
            @Override
            public void onViewClick(View view) {
                //點擊事件
            }
        });


其次,工具類方法,比上邊直接實現接口的方法需要多寫個判斷,感覺,不如上邊的方法來的簡便。

/**
	 * 判斷指定時間內雙擊
	 * 
	 * @param clickTime
	 * @return
	 */
	public static boolean isFastDoubleClick(int clickTime) {
		long time = System.currentTimeMillis();
		long timeD = time - lastClickTime;
		if (0 < timeD && timeD < clickTime) {
			return true;
		}
		lastClickTime = time;
		return false;
}
使用方法:

 btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!CommonUtils.isFastDoubleClick(1000)){
                   //點擊事件
                }
            }
        });




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章