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-02
Android TextView使用SpannableString設(shè)置復合文本的方法詳解
這篇文章主要介紹了Android TextView使用SpannableString設(shè)置復合文本的方法,結(jié)合實例形式詳細分析了Android中SpannableString類的功能及相關(guān)用法,需要的朋友可以參考下2016-08-08
android組件SwipeRefreshLayout下拉小球式刷新效果
這篇文章主要為大家詳細介紹了android組件SwipeRefreshLayout下拉小球式刷新效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
Android studio 切換flutterSDK之后報錯及解決辦法(推薦)
這篇文章主要介紹了Android studio 切換flutterSDK之后報錯及解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Android Studio3.0升級后使用注意事項及解決方法
這篇文章主要介紹了Android Studio3.0升級后使用注意事項及解決方法,需要的朋友參考下吧2017-12-12
Android開發(fā)自定義實時圖表控件實現(xiàn)示例
這篇文章主要為大家介紹了Android自定義實時圖表控件實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06

