Android防止重复点击深入
2015-11-27 10:36
543 查看
一般来说,我们都会在点击的回调方法中,加入下面这段代码,防止用户快速点击:
工具方法
private static long lastClickTime;
/* 防止快速点击 /
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (timeD >= 0 && timeD <= 300) {
return true;
} else {
lastClickTime = time;
return false;
}
}
用法
ivHead.setOnClickListener(new OnClickListener() {
工具方法
private static long lastClickTime;
/* 防止快速点击 /
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (timeD >= 0 && timeD <= 300) {
return true;
} else {
lastClickTime = time;
return false;
}
}
用法
ivHead.setOnClickListener(new OnClickListener() {
[code] @Override public void onClick(View v) { if (Util.isFastDoubleClick()) { return; } // TODO } }); 这大概是国际通用代码了O(∩_∩)O~~ 我要讲的是,如果我们在每个控件点击回调的时候,都要加这么一段代码,其实是挺烦人的,为了偷懒,我做了如下处理: 1、我所有的Activity都继承自一个BaseActivity; 2、在BaseActivity中重写dispatchTouchEvent方法; 重写代码如下: @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { if (Util.isFastDoubleClick()) {// 防止快速点击 return true; } } return super.dispatchTouchEvent(ev); } 这样,相当于一次性给所有继承自BaseActivity的Activity的点击事件,都加上了防快速点击的判断,再也不用一个一个的添加了^_^ 希望对大家有帮助,刚开始写博客,写的不好的地方,请多包涵。
相关文章推荐
- Jenkins+ Gradle +Lint对Android工程源码进行静态代码分析
- Android 控件布局常用属性
- Android入门:增删改查通讯录
- Android Studio 配置Android Annotation
- Android imageview帧动画 监听结束
- Android布局属性说明
- Android之SurfaceView学习(一)
- Android登录模块原理及实现
- android中getSystemService通过系统提供的Manager接口来访问及设置服务数据
- Android项目:proguard混淆第三方jar.
- 序列化接口:Serializable 、Parcelable
- Android项目:proguard混淆第三方jar.
- Android项目:proguard混淆第三方jar.
- Android项目:proguard混淆第三方jar.
- Android项目:proguard混淆第三方jar.
- Android项目:proguard混淆第三方jar.
- android.os.NetworkOnMainThreadException错误的原因
- android5.1 AlarmManagerService的学习总结(未完)
- fragment中的空指针问题
- 引用自定义View的布局异常 android.view.InflateException: Binary XML file line #5: Error inflating class ...