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

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

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

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

捕獲用戶(hù)的返回鍵操作,響應(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)文章

最新評(píng)論

三河市| 咸宁市| 固始县| 永济市| 佛山市| 福安市| 嫩江县| 贵定县| 林甸县| 贵州省| 三河市| 东光县| 平定县| 鄂托克前旗| 集贤县| 武鸣县| 徐闻县| 马尔康县| 铜陵市| 东莞市| 屯昌县| 岑溪市| 定南县| 沁阳市| 太谷县| 独山县| 泰顺县| 东乌珠穆沁旗| 临泉县| 武清区| 永德县| 沂源县| 尉氏县| 安康市| 贵港市| 北辰区| 德兴市| 高要市| 温宿县| 屏南县| 墨竹工卡县|