Android 防止过快点击

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onClick 事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定程度上减少了无效的网络访问量,减轻服务器压力,APP同理),就如下面代码所示:

publicfinalclassAppUtils{

privateAppUtils(){

}

privatestaticlongmLastClickTime;// 用户判断多次点击的时间

publicstaticbooleanisFastDoubleClick(){

longtime = System.currentTimeMillis();

if(Math.abs(time - mLastClickTime)

returntrue;

}

mLastClickTime = time;

returnfalse;

}

}

btn.setOnClickListener(newView.OnClickListener() {

@Override

publicvoidonClick(View v){

if(AppUtils.isFastDoubleClick()){

// 进行点击事件后的逻辑操作

}

}

});

另一种方式。。。。 新建一个onclicklistener

publicabstractclassOnMultiClickListenerimplementsView.OnClickListener{

// 两次点击按钮之间的点击间隔不能少于1000毫秒

privatestaticfinalintMIN_CLICK_DELAY_TIME =1000;

privatestaticlonglastClickTime;

publicabstractvoidonMultiClick(View v);

@Override

publicvoidonClick(View v){

longcurClickTime = System.currentTimeMillis();

if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {

// 超过点击间隔后再将lastClickTime重置为当前点击时间

lastClickTime = curClickTime;

onMultiClick(v);

}

}

}

btn.setOnClickListener(newOnMultiClickListener() {

@Override

publicvoidonMultiClick(View v){

// 进行点击事件后的逻辑操作

}

});

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180508B1K4R400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券