为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交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之有效防止按钮多次重复点击的方法(必看篇)的更多相关文章

  1. Android 关于ListView中按钮监听的优化问题(方法二)

    关于ListView中按钮监听的优化问题(方法一)地址: http://www.cnblogs.com/steffen/p/3951901.html 之前的方法一,虽然能够解决position的传递, ...

  2. 关于Android避免按钮重复点击事件

    最近测试人员测试我们的APP的时候,喜欢快速点击某个按钮,出现一个页面出现多次,测试人员能不能禁止这样.我自己点击了几下,确实存在这个问题,也感觉用户体验不太好.于是乎后来我搜了下加一个方法放在我们U ...

  3. iOS之防止用户重复点击Button(按钮)问题

    在项目中,我们往往会遇到这样的问题:因为网络较慢的原因,用户会不耐烦的一直去点击按钮,这样导致的结果时:相关代码一遍一遍的被重复执行,如果按钮的事件是网络请求的话,这样又导致一种网络请求的循环.所以我 ...

  4. 关于javascript中限定时间内防止按钮重复点击的思路

    前面的话 有一天心血来潮,1分钟内重复点击了多次博客园首页的刷新博文列表的刷新按钮.果不其然,ip当时就被禁用了.后来,重启自己的路由器,重新获取ip才可以访问博客园主页.那么,设置一个限定时间内(比 ...

  5. 重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部

    1.监听按钮点击   2.判断是否是点击的同一个按钮(记录上次点击的按钮)   3.当重复点击相同按钮时,需要获取当前按钮对应控制器刷新界面      3.1 判断是否重复点击按钮,代码写在哪里?   ...

  6. Android 按下电源按钮关闭小学习过程的整个长度

    Android 按下电源按钮关闭小学习过程的整个长度 近期研究了一下android关机跟又一次启动功能,看了一些长按电源键到弹出关机对话框,到真正关机的一系列处理过程. 首先还是来看看这个长按电源键都 ...

  7. Android实现渐显按钮的左右滑动效果

    本示例演示在Android中实现带渐显按钮的左右滑动效果. 关于滑动效果,在我的上一篇博文中提到过,有兴趣的朋友可以访问: http://www.cnblogs.com/hanyonglu/archi ...

  8. Android学习起步 - Button按钮及事件处理

    按钮和文本框算是比较简单的控件了,以下主要讲按钮的事件响应,三种写法(匿名内部类响应事件.外部类响应事件.本类直接响应事件) 点击按钮后文本框中会显示 ”按钮被单击了”,先看效果: 以下是这个界面的布 ...

  9. 转载 Android快捷键 转载

    一.实用类快捷键 1 常用熟悉的快捷键 CTRL+C(复制).CTRL+X(剪切).CTRL+Z(撤销).CTRL+F(查找).CTRL+H(搜索文件或字符串).CTRL+Y(重做).CTRL+/(双 ...

随机推荐

  1. 循环引用的weak和assgin

    __weak 当对象销毁后weakSelf指向的地址为nil __unsafe_unretained 挡圈对象销毁后,weakSelf执行的地址为不变,而地址对应对象已经销毁,再次访问该对象就崩溃,相 ...

  2. struts2学习之基础笔记6

    第十一章 Struts 2的国际化 1 国际化简介 http协议,request_locale值 Locale类àà封装类request_locale值       ResourcesBandleàà ...

  3. 关于C语言中EOF的一点认识

    总结来说:EOF(即End Of File)是一个文件结束的标记,当文件被读取到EOF位置时,参与读取的函数会返回整型值 -1,这时要注意的是:这个值被赋值给有符号char类型时是0xff,被赋值给有 ...

  4. 算法 之 aabb

    题目描述:输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等). 分支和循环结合在一起时功能强大: 下面列举所有可能的结果aabb,然后判断它们是否为完全平方数.注意a的范围是1 ...

  5. PHP魔术方法__call()篇

    当我们调用类中的方法时,如果方法不存在的话.__call会是运行,从而使错误不显示出来 header('Content-type:text/html;charset="utf-8" ...

  6. 搭建svn服务器(ubuntu)

    ubuntu搭建svn服务器 环境:ubuntu 12.04.5 apt-get install subversion 找个目录作为svn的仓库 mkdir svn svnadmin create s ...

  7. 深入剖析 iOS 性能优化

    问题种类 时间复杂度 在集合里数据量小的情况下时间复杂度对于性能的影响看起来微乎其微.但如果某个开发的功能是一个公共功能,无法预料调用者传入数据的量时,这个复杂度的优化显得非常重要了.上图列出了各种情 ...

  8. JS面向对像编程四—— prototype 对象

    http://blog.csdn.net/fanwenjieok/article/details/54575560 大部分面向对象的编程语言,都是以“类”(class)作为对象体系的语法基础.Java ...

  9. Pyhton学习——Day40

    #一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:# 核心(ECMAScript)# 文档对象模型(DOM) Document object model (整合js,css,ht ...

  10. sklearn学习7-----决策树(tree)

    1.使用示例 2.树模型参数:[很多参数都是用来限制树过于庞大,即担心其过拟合] #  1.criterion  gini  or  entropy:用什么作为衡量标准 ( 熵值或者Gini系数 ). ...