Android 防止过快(多次)点击的实现方法
在用户使用Android应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的selector或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的onClick事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定程度上减少了无效的网络访问量,减轻服务器压力,APP同理),就如下面代码所示:
publicfinalclassAppUtils{ privateAppUtils(){ } privatestaticlongmLastClickTime;//用户判断多次点击的时间 publicstaticbooleanisFastDoubleClick(){ longtime=System.currentTimeMillis(); if(Math.abs(time-mLastClickTime)<500){ returntrue; } mLastClickTime=time; returnfalse; } } btn.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewv){ if(AppUtils.isFastDoubleClick()){ //进行点击事件后的逻辑操作 } } });
另一种方式。。。。新建一个onclicklistener
publicabstractclassOnMultiClickListenerimplementsView.OnClickListener{ //两次点击按钮之间的点击间隔不能少于1000毫秒 privatestaticfinalintMIN_CLICK_DELAY_TIME=1000; privatestaticlonglastClickTime; publicabstractvoidonMultiClick(Viewv); @Override publicvoidonClick(Viewv){ longcurClickTime=System.currentTimeMillis(); if((curClickTime-lastClickTime)>=MIN_CLICK_DELAY_TIME){ //超过点击间隔后再将lastClickTime重置为当前点击时间 lastClickTime=curClickTime; onMultiClick(v); } } } btn.setOnClickListener(newOnMultiClickListener(){ @Override publicvoidonMultiClick(Viewv){ //进行点击事件后的逻辑操作 } });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。