为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~
那么如何有效避免这种情况的发生呢?
我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,则认为是无效操作,否则进行相关业务处理
首先将这块提取为工具类(方便接下来的调用),现在就起名为:ButtonUtils
public class ButtonUtils {
private static long lastClickTime = 0;
private static long DIFF = 1000;
private static int lastButtonId = -1; /**
* 判断两次点击的间隔,如果小于1000,则认为是多次无效点击
*
* @return
*/
public static boolean isFastDoubleClick() {
return isFastDoubleClick(-1, DIFF);
} /**
* 判断两次点击的间隔,如果小于1000,则认为是多次无效点击
*
* @return
*/
public static boolean isFastDoubleClick(int buttonId) {
return isFastDoubleClick(buttonId, DIFF);
} /**
* 判断两次点击的间隔,如果小于diff,则认为是多次无效点击
*
* @param diff
* @return
*/
public static boolean isFastDoubleClick(int buttonId, long diff) {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
if (lastButtonId == buttonId && lastClickTime > 0 && timeD < diff) {
Log.v("isFastDoubleClick", "短时间内按钮多次触发");
return true;
}
lastClickTime = time;
lastButtonId = buttonId;
return false;
} }
我们通过判断俩次点击时间间隔去判定当前点击操作是否为有效操作。那么如何在使用中调用呢?继续往下看。。。
gv_isf.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if (!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore)) {
//写你相关操作即可
} }
});
!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore):这块是关键。我的想法就是在单击事件中进行判断,看看当前的点击事件是否为有效点击事件
好了,一个简单又实用的防止按钮多次重复点击的工具类就搞定了。。。
以上这篇Android之有效防止按钮多次重复点击的方法(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
欢迎评论留言!
- Android Studio 如何打JAR包并解决资源使用问题
- Android Studio 2.2 NDK CMake方式入门
- Android Studio开发入门-引用jar及so文件
- Android Studio安装步骤以及注意事项
- Android Studio安装Genymotion插件
- Android Studio快捷键设置成跟Eclipse一样
- Android Studio 不能查看已经下载的源码
- 在 Android Studio 中使用 Annotation Processor
- Android实现简洁的APP登录界面
- Android自定义控件的创建方法
- 详解Android USB转串口通信开发基本流程
- Android 桌面图标右上角显示未读消息数字
- Android 属性动画原理与DataBinding
- Android TextWatcher监控EditText中的输入内容并…
- 实现qq中按返回键返回桌面不退出程序的实例
- Android_UI 仿QQ侧滑菜单效果的实现
- 自定义Toast工具类ToastUtil防止多次点击时Toast…
- Android 自定义imageview实现图片缩放实例详解
- Android之有效防止按钮多次重复点击的方法(必看篇)
- 自定义toast外形,多次点击不会总是弹出toast的实…
- Android Intent发送广播消息实例详解
- 老生常谈Listview中onItemClick中的各个参数(推荐)
- Android 开发照相功能实例详解
- sqlite查询结果在listview中展示的实现
- Android Dialog 动画实例详解
- Android 判断网络状态实例详解
- 老生常谈Android HapticFeedback(震动反馈)
- 详谈OnTouchListener与OnGestureListener的区别