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

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() {
    //如果為空會拋異常
    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);
  }

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

相關(guān)文章

最新評論

竹北市| 柘荣县| 阳谷县| 南雄市| 讷河市| 大宁县| 桑植县| 日照市| 新竹县| 稷山县| 横峰县| 收藏| 沽源县| 宿州市| 政和县| 昌图县| 库伦旗| 冀州市| 嫩江县| 禹州市| 米脂县| 牙克石市| 云霄县| 韶山市| 清新县| 连州市| 沧源| 阿图什市| 阿鲁科尔沁旗| 昆明市| 云龙县| 深圳市| 宝鸡市| 永福县| 西贡区| 浮梁县| 沐川县| 泽普县| 聊城市| 曲周县| 闽清县|