为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~
那么如何有效避免这种情况的发生呢?
我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,则认为是无效操作,否则进行相关业务处理
首先将这块提取为工具类(方便接下来的调用),现在就起名为:ButtonUtils
public class ButtonUtils {
private static long lastClickTime = 0;
private static long DIFF = 1000;
private static int lastButtonId = -1;
public static boolean isFastDoubleClick() {
return isFastDoubleClick(-1, DIFF);
}
public static boolean isFastDoubleClick(int buttonId) {
return isFastDoubleClick(buttonId, DIFF);
}
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中父View和子view的点击事件处理问题探讨Android 自定义view模板并实现点击事件的回调实例详解Android解决按钮重复点击问题Android 快速实现防止网络重复请求&按钮重复点击的方法Android 防止多次重复点击的三种方法的示例Android防止按钮重复点击示例代码Android优雅地处理按钮重复点击的几种方法Android中如何优雅的处理重复点击实例代码Android中AOP的应用实践之过滤重复点击Android开发教程之如何屏蔽View的重复点击