Android之有效防止按钮多次重复点击
来源:互联网 发布:dcp7060d mac 编辑:程序博客网 时间:2024/06/05 11:57
为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交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):这块是关键。我的想法就是在单击事件中进行判断,看看当前的点击事件是否为有效点击事件
好了,一个简单又实用的防止按钮多次重复点击的工具类就搞定了。。。
如果大家还有什么比较实用的方法,,,可以一起交流哈~
0 0
- Android之有效防止按钮多次重复点击
- Android之有效防止按钮多次重复点击
- android 防止 多次点击 重复点击按钮
- Android防止按钮多次重复点击
- android 防止按钮多次点击
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- Android 防止重复按钮点击
- Android 防止多次点击,Toast重复显示
- 防止按钮多次点击
- 防止按钮多次点击
- 防止按钮多次点击
- android 防止按钮多次点击的处理?
- Android防止按钮被多次点击
- android 按钮防止连续点击防止按钮重复点击
- .net防止多次点击按钮
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- linux怎样修改主机名
- tableView代理方法的调用时间,(主要是heightForRowAtIndexPath和cellForRowAtIndexPath调用时间)
- MyBatis学习总结(五)——实现关联表查询
- 第八周-不止有一件武器
- Android之有效防止按钮多次重复点击
- 解决ubuntu无法调整和保存屏幕亮度的问题
- Unity优化个人体验
- iOS图文混排(需要在文本或者字符串中某些特定位置添加文本框)
- 脸部特征精确跟踪的Javascript库:clmtrackr
- ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)
- nyoj 590 相同的和
- MyBatis学习总结(六)——调用存储过程
- 关于时间戳的那些事