Android之有效防止按鈕多次重復點擊的方法(必看篇)
為了防止測試妹子或者用戶頻繁點擊某個按鈕,導致程序在短時間內(nèi)進行多次數(shù)據(jù)提交or數(shù)據(jù)處理,那到時候就比較坑了~
那么如何有效避免這種情況的發(fā)生呢?
我的想法是,判斷用戶點擊按鈕間隔時間,如果間隔時間太短,則認為是無效操作,否則進行相關業(yè)務處理
首先將這塊提取為工具類(方便接下來的調(diào)用),現(xiàn)在就起名為: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", "短時間內(nèi)按鈕多次觸發(fā)"); return true; } lastClickTime = time; lastButtonId = buttonId; return false; } }
我們通過判斷倆次點擊時間間隔去判定當前點擊操作是否為有效操作。那么如何在使用中調(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)) { //寫你相關操作即可 } } });
!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore):這塊是關鍵。我的想法就是在單擊事件中進行判斷,看看當前的點擊事件是否為有效點擊事件
好了,一個簡單又實用的防止按鈕多次重復點擊的工具類就搞定了。。。
以上這篇Android之有效防止按鈕多次重復點擊的方法(必看篇)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Android 深入探究自定義view之事件的分發(fā)機制與處理詳解
對于安卓程序員來說,自定義view簡直不要太重要,畢竟有很多功能,譬如圓形頭像這些,用單純的原生非常難以實現(xiàn),而用自定義view,簡直分分鐘2021-11-11基于Android CALL && SendMes Test的相關介紹
本篇文章小編為大家介紹,Android CALL && SendMes Test 需要的朋友參考下2013-04-04Android實現(xiàn)ListView控件的多選和全選功能實例
這篇文章主要介紹了Android實現(xiàn)ListView控件的多選和全選功能,結合實例形式分析了ListView控件多選及全選功能的布局與功能實現(xiàn)技巧,需要的朋友可以參考下2017-07-07