91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Android應用中實現一個返回鍵功能

發布時間:2020-11-23 16:28:56 來源:億速云 閱讀:408 作者:Leah 欄目:移動開發

今天就跟大家聊聊有關如何在Android應用中實現一個返回鍵功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

記錄用戶點擊的操作歷史,使用棧數據結構,頻繁的操作棧頂(添加,獲取,刪除),使用LinkedList

捕獲用戶的返回鍵操作,響應返回鍵,返回上一個界面

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, "是否退出應用", 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<&#63; extends BaseView> baseViewClass) {
    BaseView baseView=null;
    //判斷是否存在
    String key=baseViewClass.getSimpleName();
    if(VIEWCACHE.containsKey(key)){
      baseView=VIEWCACHE.get(key);
    }else{
      try {
        Constructor<&#63; 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);
  }

看完上述內容,你們對如何在Android應用中實現一個返回鍵功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

得荣县| 且末县| 望奎县| 威远县| 格尔木市| 会泽县| 汶川县| 城固县| 北海市| 资溪县| 迁西县| 弥渡县| 肇庆市| 阜城县| 会理县| 察哈| 永安市| 育儿| 蓬溪县| 南郑县| 灵丘县| 泰州市| 微山县| 隆昌县| 紫金县| 湖南省| 靖安县| 泰安市| 运城市| 彭水| 桐柏县| 盘锦市| SHOW| 化州市| 商都县| 县级市| 墨竹工卡县| 秦皇岛市| 精河县| 苍南县| 浦北县|