Android 防止過快(多次)點擊的實現(xiàn)方法
在用戶使用 Android 應(yīng)用的時候,經(jīng)常會出現(xiàn)過快且多次點擊同一按鈕的情況,一方面這是因為應(yīng)用或手機(jī)當(dāng)前有些卡頓,另一方面也可能是由于很多應(yīng)用并沒有設(shè)置按鈕點擊時的 selector 或者其它按鈕響應(yīng)方式(例如點擊按鈕時按鈕放大,常見于游戲),導(dǎo)致用戶誤認(rèn)為沒有點擊到當(dāng)前按鈕,當(dāng)然,除了相對應(yīng)的對應(yīng)用進(jìn)行優(yōu)化和設(shè)置點擊selector以外,我們還可以做一些其它的工作,例如,判斷按鈕的 onClick 事件在規(guī)定事件段內(nèi)只響應(yīng)一次(在論壇的搜索功能中,我們常見到每10秒才可以進(jìn)行一次搜索的設(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()){
// 進(jìn)行點擊事件后的邏輯操作
}
}
});
另一種方式。。。。 新建一個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重置為當(dāng)前點擊時間
lastClickTime = curClickTime;
onMultiClick(v);
}
}
}
btn.setOnClickListener(new OnMultiClickListener() {
@Override
public void onMultiClick(View v) {
// 進(jìn)行點擊事件后的邏輯操作
}
});
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android自定義View實現(xiàn)飄動的葉子效果(三)
這篇文章主要為大家詳細(xì)介紹了Android自定義View實現(xiàn)飄動的葉子效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Android實現(xiàn)TextView中的部分文字實現(xiàn)點擊跳轉(zhuǎn)功能
在移動端應(yīng)用中,往往需要在一段文字中讓某幾個關(guān)鍵詞或短語具備點擊跳轉(zhuǎn)功能,如果將整段文字放到 Button、Link 或單獨的 View 中,通常會帶來布局復(fù)雜、樣式難以統(tǒng)一、可維護(hù)性差等問題,所以本文將給大家介紹Android實現(xiàn)TextView中的部分文字實現(xiàn)點擊跳轉(zhuǎn)功能2025-04-04
Android自定義豎排TextView實現(xiàn)實例
這篇文章主要介紹了Android自定義豎排TextView實現(xiàn)實例的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android 標(biāo)準(zhǔn)Intent的使用詳解
這篇文章主要介紹了Android 標(biāo)準(zhǔn)Intent的使用詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android進(jìn)程?;钪嵘M(jìn)程優(yōu)先級
這篇文章主要介紹了Android進(jìn)程?;钪嵘M(jìn)程優(yōu)先級,對提升優(yōu)先級感興趣的同學(xué)可以參考下2021-04-04
Android中判斷網(wǎng)絡(luò)連接是否可用及監(jiān)控網(wǎng)絡(luò)狀態(tài)
獲取網(wǎng)絡(luò)信息需要在AndroidManifest.xml文件中加入相應(yīng)的權(quán)限,接下來詳細(xì)介紹Android中判斷網(wǎng)絡(luò)連接是否可用及監(jiān)控網(wǎng)絡(luò)狀態(tài),感興趣的朋友可以參考下2012-12-12
Android Studio 利用Splash制作APP啟動界面的方法
這篇文章主要介紹了Android Studio 利用Splash制作APP啟動界面,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05

