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

首頁 > 系統(tǒng) > Android > 正文

Android 防止過快(多次)點(diǎn)擊的實(shí)現(xiàn)方法

2019-12-12 00:56:59
字體:
供稿:網(wǎng)友

在用戶使用 Android 應(yīng)用的時(shí)候,經(jīng)常會出現(xiàn)過快且多次點(diǎn)擊同一按鈕的情況,一方面這是因?yàn)閼?yīng)用或手機(jī)當(dāng)前有些卡頓,另一方面也可能是由于很多應(yīng)用并沒有設(shè)置按鈕點(diǎn)擊時(shí)的 selector 或者其它按鈕響應(yīng)方式(例如點(diǎn)擊按鈕時(shí)按鈕放大,常見于游戲),導(dǎo)致用戶誤認(rèn)為沒有點(diǎn)擊到當(dāng)前按鈕,當(dāng)然,除了相對應(yīng)的對應(yīng)用進(jìn)行優(yōu)化和設(shè)置點(diǎn)擊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;// 用戶判斷多次點(diǎn)擊的時(shí)間  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)行點(diǎn)擊事件后的邏輯操作        }      }    });

另一種方式。。。。 新建一個(gè)onclicklistener

public abstract class OnMultiClickListener implements View.OnClickListener{  // 兩次點(diǎn)擊按鈕之間的點(diǎn)擊間隔不能少于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) {      // 超過點(diǎn)擊間隔后再將lastClickTime重置為當(dāng)前點(diǎn)擊時(shí)間      lastClickTime = curClickTime;      onMultiClick(v);    }  }}btn.setOnClickListener(new OnMultiClickListener() {      @Override      public void onMultiClick(View v) {        // 進(jìn)行點(diǎn)擊事件后的邏輯操作      }    });

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 电白县| 塔河县| 海晏县| 峡江县| 井陉县| 磐安县| 昌宁县| 寿光市| 嵊泗县| 舒兰市| 长治县| 通州市| 永丰县| 东城区| 米脂县| 临颍县| 宜昌市| 齐齐哈尔市| 莆田市| 栖霞市| 曲沃县| 台江县| 海安县| 贺州市| 潮州市| 松原市| 察雅县| 兰西县| 中牟县| 德江县| 银川市| 湾仔区| 新巴尔虎左旗| 奇台县| 安徽省| 青河县| 固始县| 伊宁县| 平谷区| 昌平区| 庆阳市|