关于避免按钮短时间内频繁点击或过快点击的处理方法
来源:互联网 发布:javascript 子元素 编辑:程序博客网 时间:2024/05/18 01:12
开发过程中,遇到了测试提出的bug,原因是做网络请求,生成一条数据的时候,网络响应慢,点击提交按钮没反应,多次点击,导致生成多条数据,数据出现问题。
出现问题,第一反应就是,一旦点击了网络请求按钮,就要设置它为不可点击,等请求回调,无论成功还是失败,再次设置为可点击。
部分代码:
requestNetData();
mBtLoading.setClickable(false);
@Overridepublic void onError(Call call, Exception e, int id) { mBtLoading.setClickable(true); Toaster.showToast(GetParkDataActivity.this, "数据保存失败"); return;}@Overridepublic void onResponse(String response, int id) { mBtLoading.setClickable(true);}
但是这样也会存在问题,我们都知道JAVA代码是按顺序执行的,如果当前手机网络不好,这个地方还是会出现多次点击事件,无法禁止快速的重复点击事件,
所以,有必要做一个点击时间间隔处理,和双击返回的原理一样。然后我写了以下代码:
public class ClickUtils { private static long lastTime; private static long curTime; private static Toast mToast; public static boolean mClick() { if (System.currentTimeMillis() - lastTime >= 5000) { curTime = System.currentTimeMillis(); lastTime = System.currentTimeMillis(); return true; } return false; }}
在这里我写了一个点击类,用的时候直接加判断就好了:
@OnClick(R.id.test) public void onClick() { if (ClickUtils.mClick()) {
// 下面是个吐司,我只是抽了一下 第一次点击到5s之后的点击响应这个事件 ClickUtils.mToaster(this, "111"); } else {
// 第一次点击之后 接下来的5s内 走这里 ClickUtils.mToaster(this, "222"); } }
这样可以在业务代码里进行判断了,可以设置是否可点击,多少时间内可点击。
技术小白,开发探索中...如有什么不足,还请指正。
阅读全文
0 0
- 关于避免按钮短时间内频繁点击或过快点击的处理方法
- 避免按钮频繁点击
- 按钮频繁点击处理
- 防止按钮短时间内重复点击
- js Button点击事件时避免点击频繁的方法
- 《android按钮点击事件的频繁点击问题处理》
- 防止短时间内多次点击的方法ClickEffectUtil
- 防止按钮过快的二次点击
- iOS解决按钮短时间内多次点击只触发一次事件方法(开始写博客)
- iOS解决按钮短时间内多次点击只触发一次事件方法
- iOS解决按钮短时间内多次点击只触发一次事件方法
- iOS解决定时器按钮短时间内多次点击只触发一次事件方法
- 防止按钮在短时间内被多次点击
- IONIC WebApp之防止短时间内按钮多次点击
- 防止按钮在短时间内被多次点击
- 防止按钮在短时间内被多次点击并且倒计时
- 关于连续点击的处理、避免多次点击
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- Java开发中的23种设计模式详解,深入浅出的文章
- 5.3 实际 Web 服务器工作流程
- C#中DataGridView控件使用大全
- Linux安装软件
- python 学习与复习 1
- 关于避免按钮短时间内频繁点击或过快点击的处理方法
- Android 7.0 行为变更 通过FileProvider在应用间共享文件吧
- js缓存
- 一次笔记--springMVC+Velocity
- 程序注释
- 判断cron表达式输入是否有效的正则表达式
- 犯错会让你成为一个更好的链接构建者
- 折半查找以及插入
- HTML5 侧拉实现