国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 防止過快(多次)點擊的實現方法

2019-10-22 18:11:53
字體:
來源:轉載
供稿:網友

在用戶使用 android/105253.html">Android 應用的時候,經常會出現過快且多次點擊同一按鈕的情況,一方面這是因為應用或手機當前有些卡頓,另一方面也可能是由于很多應用并沒有設置按鈕點擊時的 selector 或者其它按鈕響應方式(例如點擊按鈕時按鈕放大,常見于游戲),導致用戶誤認為沒有點擊到當前按鈕,當然,除了相對應的對應用進行優化和設置點擊selector以外,我們還可以做一些其它的工作,例如,判斷按鈕的 onClick 事件在規定事件段內只響應一次(在論壇的搜索功能中,我們常見到每10秒才可以進行一次搜索的設置,這就在一定程度上減少了無效的網絡訪問量,減輕服務器壓力,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) {        // 進行點擊事件后的邏輯操作      }    });

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武平县| 景泰县| 乌拉特中旗| 玛曲县| 宜州市| 汉川市| 大英县| 额尔古纳市| 莱州市| 阜康市| 郴州市| 海南省| 洪洞县| 常州市| 凌源市| 建湖县| 冀州市| 肥西县| 襄樊市| 封丘县| 滨海县| 潼南县| 乳山市| 海兴县| 汕尾市| 南投市| 济阳县| 彝良县| 涿州市| 通河县| 西乡县| 融水| 酉阳| 筠连县| 黄陵县| 利川市| 日喀则市| 军事| 玛多县| 阿拉善右旗| 金秀|