Android 防止過快(多次)點擊的實現(xiàn)方法
在用戶使用 Android 應(yīng)用的時候,經(jīng)常會出現(xiàn)過快且多次點擊同一按鈕的情況,一方面這是因為應(yīng)用或手機當前有些卡頓,另一方面也可能是由于很多應(yīng)用并沒有設(shè)置按鈕點擊時的 selector 或者其它按鈕響應(yīng)方式(例如點擊按鈕時按鈕放大,常見于游戲),導(dǎo)致用戶誤認為沒有點擊到當前按鈕,當然,除了相對應(yīng)的對應(yīng)用進行優(yōu)化和設(shè)置點擊selector以外,我們還可以做一些其它的工作,例如,判斷按鈕的 onClick 事件在規(guī)定事件段內(nèi)只響應(yīng)一次(在論壇的搜索功能中,我們常見到每10秒才可以進行一次搜索的設(shè)置,這就在一定程度上減少了無效的網(wǎng)絡(luò)訪問量,減輕服務(wù)器壓力,APP同理),就如下面代碼所示:
public final class AppUtils { private AppUtils() { } private static long mLastClickTime;// 用戶判斷多次點擊的時間 public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); if (Math.abs(time - mLastClickTime) < 500) { return true; } mLastClickTime = time; return false; } } btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (AppUtils.isFastDoubleClick()){ // 進行點擊事件后的邏輯操作 } } });
另一種方式。。。。 新建一個onclicklistener
public abstract class OnMultiClickListener implements View.OnClickListener{ // 兩次點擊按鈕之間的點擊間隔不能少于1000毫秒 private static final int MIN_CLICK_DELAY_TIME = 1000; private static long lastClickTime; public abstract void onMultiClick(View v); @Override public void onClick(View v) { long curClickTime = System.currentTimeMillis(); if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { // 超過點擊間隔后再將lastClickTime重置為當前點擊時間 lastClickTime = curClickTime; onMultiClick(v); } } } btn.setOnClickListener(new OnMultiClickListener() { @Override public void onMultiClick(View v) { // 進行點擊事件后的邏輯操作 } });
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android M(6.x)使用OkHttp包解析和發(fā)送JSON請求的教程
Android 6.0采用的SPDY支持HTTP上GZIP壓縮的傳輸,這使得OkHttp包的功能能夠進一步被利用,本文我們來總結(jié)一下Android M(6.0)使用OkHttp包解析和發(fā)送JSON請求的教程2016-07-07打飛機游戲終極BOSS Android實戰(zhàn)打飛機游戲完結(jié)篇
打飛機游戲終極BOSS,Android實戰(zhàn)打飛機游戲完結(jié)篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-07-07Android基于google Zxing實現(xiàn)各類二維碼掃描效果
這篇文章主要介紹了Android基于google Zxing實現(xiàn)各類二維碼掃描效果的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-02-02Android ImageView 固定寬高比例的實現(xiàn)方法
這篇文章主要介紹了Android ImageView 固定寬高比例的實現(xiàn)方法的相關(guān)資料,,方法一:設(shè)置 adjustViewBounds="true",方法二:使用 Universal-Image-Loader 圖片緩存類,需要注意的是方法二和方法一同時使用導(dǎo)致設(shè)置無效,需要的朋友可以參考下2017-07-07Android BadTokenException異常解決案例詳解
這篇文章主要介紹了Android BadTokenException異常詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-08-08Android開發(fā)教程之ContentProvider數(shù)據(jù)存儲
這篇文章主要介紹了Android開發(fā)教程之ContentProvider數(shù)據(jù)存儲的相關(guān)資料,需要的朋友可以參考下2016-12-12