【问题标题】:Android up navigation in fragment pager adapter片段寻呼机适配器中的Android向上导航
【发布时间】:2016-05-01 01:47:22
【问题描述】:

我目前有不同的片段可以打开相同的活动。有没有办法实现向上导航按钮,当按下时,它会返回到来自的片段而不是总是作为起始片段?

我附上了一张图片来更好地说明这一点。

后按按钮工作正常,只是不确定向上导航按钮。

谢谢。

【问题讨论】:

    标签: android fragment fragmentpageradapter up-navigation


    【解决方案1】:

    在你的片段中...

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                if ( getActivity() != null ) {
                    getActivity.onBackPressed();
                }
                break;
        }
        return true;
    }
    

    在您的活动中...

    @Override
    public void onBackPressed() {
        if ( viewPager != null && viewPager.getCurrentItem() != 0 ) {
            viewPager.setCurrentItem(0);
        }
    }
    

    【讨论】:

      【解决方案2】:

      我的解决方案可能并不优雅,但在某种程度上是有效的。

      首先,您应该将启动新活动的片段的标签放入意图中。启动 Activity 后,您在 MainActivity 中调用 finish();

      在新活动中,您覆盖onOptionsItemSelected 方法,因此它会创建一个新意图并启动 MainActivity。当然,你会在意图中再次存储片段的标签。

      // Handles back button in ActionBar
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          switch (item.getItemId()) {
              case android.R.id.home:
                  Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                  intent.putExtra("lastFragment",value);
                  startActivity(intent);
                  finish();
                  break;
          }
          return true;
      }
      

      最后 MainActivity 应该检查 Intent 是否为空。如果没有,获取fragment的tag并加载。

      Intent intent = getIntent();
      if(savedInstanceState!=null) {
          lastFrag = savedInstanceState.getString("lastFragment");
      }
      
      //Recreate the fragment
      

      最终的结果是用户将被提示回到调用新活动的片段。虽然我确信有更好的方法来做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多