如何返回到之前的活动?

How to go back to previous activite(s)?

所以我有 Activity A、B 和 C。Activity A 和 B 都去 activity C。当我在 activity C 和我按 mySupportActionBar 上的返回主页按钮,我想 return 到 activity 的状态(从我离开时的状态)我来自。我将如何做到这一点?

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

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

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

使用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);
    }
}

当您处于内部 activity 时,后退箭头按钮是 "home" 按钮,因此您可以完成内部 activity 或调用后退按钮

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

您也可以使用工具栏上的 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());
        }
    }