Android View防止重复点击

sdielpf 贡献于2014-08-22

作者 Windows 用户  创建于2014-04-10 01:35:00   修改者Windows 用户  修改于2014-04-10 01:36:00字数924

文档摘要:Android防止控件被重复点击在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现.而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.
关键词:

Android 防止控件被重复点击 在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击. 解决的思路如下:  1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.  2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件 下面请看代码: 工具类: public class CommonUtils {      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;         }  }  public class CommonUtils {     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;       } } 控件点击的处理: public void onClick(View v) {        if (Utils.isFastDoubleClick()) {            return;        }else{          //弹出Toast或者Dialog      }   }    public void onClick(View v) {      if (Utils.isFastDoubleClick()) {          return;      }else{         //弹出Toast或者Dialog    }  }  这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档