轉載:
工具類:
public class Utils { private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if ( 0 < timeD && timeD < 800) { return true; } lastClickTime = time; return false; } }
控件點擊的處理:
mHandler.removeCallbacks(runnable); if (!Utils.isFastDoubleClick()) { imageLoader.loadImage(MealOrderingActivity.this, path, mImageSize, options, simpListener); // imageLoader.displayImage(MealOrderingActivity.this,path, // (ImageView) mImageSwitcher.getCurrentView(), // options,simpListener); }else{ log("load from www or sd showDishes runnable before"); mHandler.postDelayed(runnable, 1000); }
這樣,兩次點擊時間相隔小於800ms,便不會觸發事件,具體的臨界時間可以根據需求自己修改.
再加上一個postDelayed,確保不會由於最后兩次點擊時間間隔太近,導致最后一次操作也被忽略。