Android之有效防止按鈕多次重復(fù)點(diǎn)擊的方法(必看篇)
為了防止測試妹子或者用戶頻繁點(diǎn)擊某個按鈕,導(dǎo)致程序在短時間內(nèi)進(jìn)行多次數(shù)據(jù)提交or數(shù)據(jù)處理,那到時候就比較坑了~
那么如何有效避免這種情況的發(fā)生呢?
我的想法是,判斷用戶點(diǎn)擊按鈕間隔時間,如果間隔時間太短,則認(rèn)為是無效操作,否則進(jìn)行相關(guān)業(yè)務(wù)處理
首先將這塊提取為工具類(方便接下來的調(diào)用),現(xiàn)在就起名為:ButtonUtils
public class ButtonUtils { private static long lastClickTime = 0; private static long DIFF = 1000; private static int lastButtonId = -1; /** * 判斷兩次點(diǎn)擊的間隔,如果小于1000,則認(rèn)為是多次無效點(diǎn)擊 * * @return */ public static boolean isFastDoubleClick() { return isFastDoubleClick(-1, DIFF); } /** * 判斷兩次點(diǎn)擊的間隔,如果小于1000,則認(rèn)為是多次無效點(diǎn)擊 * * @return */ public static boolean isFastDoubleClick(int buttonId) { return isFastDoubleClick(buttonId, DIFF); } /** * 判斷兩次點(diǎn)擊的間隔,如果小于diff,則認(rèn)為是多次無效點(diǎn)擊 * * @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", "短時間內(nèi)按鈕多次觸發(fā)"); return true; } lastClickTime = time; lastButtonId = buttonId; return false; } }
我們通過判斷倆次點(diǎn)擊時間間隔去判定當(dāng)前點(diǎn)擊操作是否為有效操作。那么如何在使用中調(diào)用呢?繼續(xù)往下看。。。
gv_isf.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if (!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore)) { //寫你相關(guān)操作即可 } } });
!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore):這塊是關(guān)鍵。我的想法就是在單擊事件中進(jìn)行判斷,看看當(dāng)前的點(diǎn)擊事件是否為有效點(diǎn)擊事件
好了,一個簡單又實(shí)用的防止按鈕多次重復(fù)點(diǎn)擊的工具類就搞定了。。。
以上這篇Android之有效防止按鈕多次重復(fù)點(diǎn)擊的方法(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Android 處理 View 重復(fù)點(diǎn)擊的多種方法
- Android開發(fā)教程之如何屏蔽View的重復(fù)點(diǎn)擊
- Android中如何優(yōu)雅的處理重復(fù)點(diǎn)擊實(shí)例代碼
- Android中AOP的應(yīng)用實(shí)踐之過濾重復(fù)點(diǎn)擊
- Android優(yōu)雅地處理按鈕重復(fù)點(diǎn)擊的幾種方法
- Android防止按鈕重復(fù)點(diǎn)擊示例代碼
- Android 防止多次重復(fù)點(diǎn)擊的三種方法的示例
- Android 快速實(shí)現(xiàn)防止網(wǎng)絡(luò)重復(fù)請求&按鈕重復(fù)點(diǎn)擊的方法
- 實(shí)例詳解Android解決按鈕重復(fù)點(diǎn)擊問題
- Android如何優(yōu)雅的處理重復(fù)點(diǎn)擊
相關(guān)文章
Android 深入探究自定義view之事件的分發(fā)機(jī)制與處理詳解
對于安卓程序員來說,自定義view簡直不要太重要,畢竟有很多功能,譬如圓形頭像這些,用單純的原生非常難以實(shí)現(xiàn),而用自定義view,簡直分分鐘2021-11-11基于Android CALL && SendMes Test的相關(guān)介紹
本篇文章小編為大家介紹,Android CALL && SendMes Test 需要的朋友參考下2013-04-04快速關(guān)閉android studio的自動保存功能教程
這篇文章主要介紹了快速關(guān)閉android studio的自動保存功能教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Android實(shí)現(xiàn)ListView控件的多選和全選功能實(shí)例
這篇文章主要介紹了Android實(shí)現(xiàn)ListView控件的多選和全選功能,結(jié)合實(shí)例形式分析了ListView控件多選及全選功能的布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07android實(shí)現(xiàn)簡單的畫畫板實(shí)例代碼
畫畫板實(shí)現(xiàn)起來其實(shí)很簡單,我們只需要利用android給我們提供的Canvas類來操作就可以實(shí)現(xiàn)簡單的畫畫功能2014-01-01