Android 防止多次重復點擊的三種方法的示例
在項目中經(jīng)常會遇到對按鈕、自定義控件的 Item 等防止多次重復的點擊的問題,下面做一個小結(jié)。
方法1:使用 RxJava 的 throttleFirst()
具體代碼如下:
/** * 防止重復點擊 * * @param target 目標view * @param listener 監(jiān)聽器 */ public static void preventRepeatedClick(final View target, final View.OnClickListener listener) { RxView.clicks(target).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Observer<Object>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Object object) { listener.onClick(target); } }); }
上述代碼中,利用throttleFirst方法,取1秒內(nèi)的第一次點擊進行響應。
方法2:利用系統(tǒng)時間差
//全局定義 private long lastClickTime = 0L; private static final int FAST_CLICK_DELAY_TIME = 500; // 快速點擊間隔 //在設(shè)置Item的監(jiān)聽時 item.setOnItemClickListener(xxx){ if (System.currentTimeMillis() - lastClickTime < FAST_CLICK_DELAY_TIME){ return; } lastClickTime = System.currentTimeMillis(); //下面進行其他操作,比如跳轉(zhuǎn)等 XXX }
該方法主要針對于自定義控件的點擊。
方法3:工具類,用于判斷是否快速點擊
該方法與方法2 的原理類似:
private static final int MIN_DELAY_TIME= 1000; // 兩次點擊間隔不能少于1000ms private static long lastClickTime; public static boolean isFastClick() { boolean flag = true; long currentClickTime = System.currentTimeMillis(); if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) { flag = false; } lastClickTime = currentClickTime; return flag; }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實現(xiàn)關(guān)機重啟的方法分享
這篇文章主要介紹了Android實現(xiàn)關(guān)機重啟的方法,需要的朋友可以參考下2014-02-02Android TextView使用SpannableString設(shè)置復合文本的方法詳解
這篇文章主要介紹了Android TextView使用SpannableString設(shè)置復合文本的方法,結(jié)合實例形式詳細分析了Android中SpannableString類的功能及相關(guān)用法,需要的朋友可以參考下2016-08-08android組件SwipeRefreshLayout下拉小球式刷新效果
這篇文章主要為大家詳細介紹了android組件SwipeRefreshLayout下拉小球式刷新效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02Android studio 切換flutterSDK之后報錯及解決辦法(推薦)
這篇文章主要介紹了Android studio 切換flutterSDK之后報錯及解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Android Studio3.0升級后使用注意事項及解決方法
這篇文章主要介紹了Android Studio3.0升級后使用注意事項及解決方法,需要的朋友參考下吧2017-12-12Android開發(fā)自定義實時圖表控件實現(xiàn)示例
這篇文章主要為大家介紹了Android自定義實時圖表控件實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06