【问题标题】:How to go back to previous activite(s)?如何返回之前的活动?
【发布时间】:2017-08-07 00:54:47
【问题描述】:

所以我有活动 A、B 和 C。活动 A 和 B 都转到活动 C。当我在活动 C 上并按下 mySupportActionBar 上的返回主页按钮时,我想返回活动状态(从我把它留在的州)我来自。我将如何做到这一点?

这是我的 onOptionsItemSelected()。所以目前,它会回到我在清单中分配的指定父活动,以避免我的应用程序崩溃。因为父活动需要来自意图的字符串。

@Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();
        if(id == android.R.id.home)
        {
            NavUtils.navigateUpFromSameTask(this);
        }
        return super.onOptionsItemSelected(item);
    }

我也很想完成这个 onBackPressed()。

【问题讨论】:

  • 不要声明父活动,只调用finish()而不是调用NavUtils.navigateUpFromSameTask(this)
  • 所以在清单中,我需要摆脱父活动吗?
  • 实际上,它可以在不摆脱父活动声明的情况下工作。试试看会发生什么。

标签: android android-studio android-activity android-actionbar onbackpressed


【解决方案1】:

当您在内部活动中时,返回箭头按钮是“主页”按钮,因此您可以完成内部活动,或者只是调用返回按钮

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

【讨论】:

    【解决方案2】:

    使用android.R.id.home

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    

    【讨论】:

      【解决方案3】:

      您也可以使用工具栏上的setNavigationOnClickListener 来触发返回按钮。

      @Override
          protected void onCreate(@Nullable Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_filter_category);
      
              setSupportActionBar(toolbar);
      
              if (getSupportActionBar() != null) {
                  getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                  getSupportActionBar().setDisplayShowTitleEnabled(false);
      
                  //back button action
                  toolbar.setNavigationOnClickListener(view -> finish());
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2014-05-06
        • 1970-01-01
        • 2020-03-04
        • 1970-01-01
        • 2012-01-27
        • 2016-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多