欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)返回鍵操作思路

 更新時(shí)間:2017年02月11日 17:13:35   作者:陶士涵  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)返回鍵操作思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

記錄用戶點(diǎn)擊的操作歷史,使用棧數(shù)據(jù)結(jié)構(gòu),頻繁的操作棧頂(添加,獲取,刪除),使用LinkedList

捕獲用戶的返回鍵操作,響應(yīng)返回鍵,返回上一個(gè)界面

MainActivity.java

  /**
   * 返回鍵處理
   */
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK){
      boolean result=MiddleManager.getInstance().goBack();
      if(!result){
        Toast.makeText(MainActivity.this, "是否退出應(yīng)用", 1).show();
      }
      return false;
    }
    return super.onKeyDown(keyCode, event);
  }

MiddleManager.java

  //操作歷史棧
  private LinkedList<String> HISTORY=new LinkedList<String>();
  /**
   * 處理返回鍵
   * @return 
   */
  public boolean goBack() {
    //如果為空會(huì)拋異常
    if(HISTORY.size()>0){
      if(HISTORY.size()==1){
        return false;
      }
      
      HISTORY.removeFirst();
      if(HISTORY.size()>0){
        String key=HISTORY.getFirst();
        BaseView targetView=VIEWCACHE.get(key);
        mainContainer.removeAllViews();
        View child=targetView.getView();
        mainContainer.addView(child);
        child.startAnimation(AnimationUtils.loadAnimation(mainContainer.getContext(), R.anim.left_to_right));
        currentView=targetView;
        return true;
      }
    }
    return false;
  }
  /**
   * 加載界面
   */
  public void loadView(Class<? extends BaseView> baseViewClass) {
    BaseView baseView=null;
    //判斷是否存在
    String key=baseViewClass.getSimpleName();
    if(VIEWCACHE.containsKey(key)){
      baseView=VIEWCACHE.get(key);
    }else{
      try {
        Constructor<? extends BaseView> constructor;
        constructor = baseViewClass.getConstructor(Context.class);
        baseView=constructor.newInstance(mainContainer.getContext());
      } catch (Exception e) {
        e.printStackTrace();
      }
      VIEWCACHE.put(key, baseView);
    }
    mainContainer.removeAllViews();
    View child=baseView.getView();
    mainContainer.addView(child);
    child.startAnimation(AnimationUtils.loadAnimation(mainContainer.getContext(), R.anim.left_to_right));
    currentView=baseView;
    //放入棧
    HISTORY.addFirst(key);
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • android 獲取APP的唯一標(biāo)識(shí)applicationId的實(shí)例

    android 獲取APP的唯一標(biāo)識(shí)applicationId的實(shí)例

    下面小編就為大家分享一篇android 獲取APP的唯一標(biāo)識(shí)applicationId的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Flutter 中 Dart的Mixin示例詳解

    Flutter 中 Dart的Mixin示例詳解

    這篇文章主要介紹了Flutter 中 Dart的Mixin的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 實(shí)例講解Android自定義控件

    實(shí)例講解Android自定義控件

    本篇文章通過(guò)實(shí)例給大家講解了Android自定義控件的使用技巧和需要注意的地方,跟著學(xué)習(xí)參考下吧。
    2017-12-12
  • Android開(kāi)發(fā)之AlarmManager的用法詳解

    Android開(kāi)發(fā)之AlarmManager的用法詳解

    這篇文章主要介紹了Android開(kāi)發(fā)之AlarmManager的用法,是Android應(yīng)用開(kāi)發(fā)中非常實(shí)用的技能,需要的朋友可以參考下
    2014-07-07
  • android中圖片的三級(jí)緩存cache策略(內(nèi)存/文件/網(wǎng)絡(luò))

    android中圖片的三級(jí)緩存cache策略(內(nèi)存/文件/網(wǎng)絡(luò))

    實(shí)現(xiàn)圖片緩存也不難,需要有相應(yīng)的cache策略。這里我采用 內(nèi)存-文件-網(wǎng)絡(luò) 三層cache機(jī)制,其中內(nèi)存緩存包括強(qiáng)引用緩存和軟引用緩存(SoftReference),其實(shí)網(wǎng)絡(luò)不算cache,這里姑且也把它劃到緩存的層次結(jié)構(gòu)中
    2013-06-06
  • 詳解Android中接口回調(diào)、方法回調(diào)

    詳解Android中接口回調(diào)、方法回調(diào)

    在Android開(kāi)發(fā)中我們很多地方都用到了方法的回調(diào),回調(diào)就是把方法的定義和功能導(dǎo)入實(shí)現(xiàn)分開(kāi)的一種機(jī)制,目的是為了解耦他的本質(zhì)是基于觀察者設(shè)計(jì)模式,即觀察者設(shè)計(jì)模式的的簡(jiǎn)化版。本文主要對(duì)Android中接口回調(diào)、方法回調(diào)進(jìn)行詳細(xì)介紹,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • android 限制某個(gè)操作每天只能操作指定的次數(shù)(示例代碼詳解)

    android 限制某個(gè)操作每天只能操作指定的次數(shù)(示例代碼詳解)

    這篇文章主要介紹了android 限制某個(gè)操作每天只能操作指定的次數(shù),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Android加載長(zhǎng)圖的多種方案分享

    Android加載長(zhǎng)圖的多種方案分享

    這篇文章主要介紹了Android加載長(zhǎng)圖的多種方案分享,幫助大家更好的理解和學(xué)習(xí)使用Android開(kāi)發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Android通話默認(rèn)打開(kāi)揚(yáng)聲器的方法

    Android通話默認(rèn)打開(kāi)揚(yáng)聲器的方法

    這篇文章主要介紹了Android通話默認(rèn)打開(kāi)揚(yáng)聲器的方法.小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Android 滑動(dòng)Scrollview標(biāo)題欄漸變效果(仿京東toolbar)

    Android 滑動(dòng)Scrollview標(biāo)題欄漸變效果(仿京東toolbar)

    這篇文章主要介紹了Android 滑動(dòng)Scrollview標(biāo)題欄漸變效果(仿京東toolbar),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評(píng)論