最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 防止多次重復(fù)點擊的三種方法的示例

 更新時間:2018年03月29日 09:07:12   作者:hust_twj  
本篇文章主要介紹了Android 防止多次重復(fù)點擊的三種方法的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在項目中經(jīng)常會遇到對按鈕、自定義控件的 Item 等防止多次重復(fù)的點擊的問題,下面做一個小結(jié)。

方法1:使用 RxJava 的 throttleFirst()

具體代碼如下:

  /**
   * 防止重復(fù)點擊
   *
   * @param target 目標(biāo)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)的第一次點擊進(jìn)行響應(yīng)。

方法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();

    //下面進(jìn)行其他操作,比如跳轉(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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • RecyclerView索引溢出異常的解決方法

    RecyclerView索引溢出異常的解決方法

    本篇文章主要介紹了RecyclerView索引溢出異常的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Android實現(xiàn)越界回彈效果

    Android實現(xiàn)越界回彈效果

    這篇文章主要介紹了Android實現(xiàn)越界回彈效果,支持水平和垂直方向,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Kotlin基礎(chǔ)學(xué)習(xí)之Deprecated與Suppress注解使用

    Kotlin基礎(chǔ)學(xué)習(xí)之Deprecated與Suppress注解使用

    這篇文章主要給大家介紹了關(guān)于Kotlin基礎(chǔ)學(xué)習(xí)之Deprecated與Suppress注解使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Kotlin具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Android ListView控件使用方法

    Android ListView控件使用方法

    這篇文章主要為大家詳細(xì)介紹了Android ListView控件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android 實現(xiàn)長按彈出PopupMenu 菜單欄

    Android 實現(xiàn)長按彈出PopupMenu 菜單欄

    這篇文章主要介紹了Android 實現(xiàn)長按彈出PopupMenu 菜單欄,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Android持久化技術(shù)之文件的讀取與寫入實例詳解

    Android持久化技術(shù)之文件的讀取與寫入實例詳解

    這篇文章主要介紹了Android持久化技術(shù)之文件的讀取與寫入操作,結(jié)合實例形式較為詳細(xì)的分析講述了Android持久化操作的相關(guān)技巧與具體實現(xiàn)方法,需要的朋友可以參考下
    2016-01-01
  • android設(shè)計模式之單例模式詳解

    android設(shè)計模式之單例模式詳解

    這篇文章主要介紹了android設(shè)計模式中的單例模式詳解,需要的朋友可以參考下
    2014-04-04
  • Android仿微信發(fā)表說說實現(xiàn)拍照、多圖上傳功能

    Android仿微信發(fā)表說說實現(xiàn)拍照、多圖上傳功能

    這篇文章主要為大家詳細(xì)介紹了Android仿微信發(fā)表說說實現(xiàn)拍照、多圖上傳功能,使用Retrofit2.0技術(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android桌面組件App Widget用法入門教程

    Android桌面組件App Widget用法入門教程

    這篇文章主要介紹了Android桌面組件App Widget用法,較為深入淺出的分析了Android桌面組件App Widget的功能、定義及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Android使用NumberPicker實現(xiàn)滑輪日期選擇器

    Android使用NumberPicker實現(xiàn)滑輪日期選擇器

    這篇文章主要為大家介紹了如何使用Android中的NumberPicker控件,以一種簡單而直觀的方式實現(xiàn)滑輪式的日期選擇器,需要的小伙伴可以參考一下
    2023-06-06

最新評論

中卫市| 海丰县| 兖州市| 安图县| 梁山县| 普陀区| 昆山市| 锦州市| 太谷县| 东宁县| 镶黄旗| 荃湾区| 大邑县| 威远县| 康马县| 曲水县| 九龙县| 绵阳市| 庐江县| 桃园市| 儋州市| 靖宇县| 宿州市| 白朗县| 罗山县| 黑河市| 大方县| 花莲市| 南丰县| 七台河市| 论坛| 曲麻莱县| 东源县| 融水| 吉安县| 大洼县| 株洲市| 黔南| 长沙县| 安康市| 竹山县|