Android 防止控件被重复点击

转载:

工具类:

 

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,确保不会由于最后两次点击时间间隔太近,导致最后一次操作也被忽略。

 

posted @ 2016-04-26 17:13  万物为铜  阅读(1631)  评论(4编辑  收藏  举报