如何让活动返回上一个不是父项的活动?

时间:2015-11-20 17:43:53

标签: java android

我有活动A,B和C.他们都向前和向后导航。在这3个活动中的任何一个中,我都可以开始词汇表活动。当我返回/退出时,无论先前的活动是什么,它都会转到活动A(它是清单中定义的父级)。我是否需要更改清单中的内容?

    Intent intent = new Intent(this, glossary.class);
    startActivity(intent);

2 个答案:

答案 0 :(得分:0)

我不确定更改清单中的任何内容是否会有所帮助。您可以尝试下面的代码,我们将覆盖“向上”按钮的实现并调用onBackPressed()

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

请告诉我这是否有帮助!

答案 1 :(得分:0)

如果你想回到堆栈上的前一个Activity(开始GlossaryActivity之前的那个),你不需要定义你的父Activity GlossaryActivity,因此您只需要在清单中删除此行。

然后,当您按下后退按钮时,它会自动关闭您当前的活动并返回上一个活动。

另一点:如果您使用与后退按钮相同的ActionBarToolbar箭头,则应在GlossaryActivity中执行此操作以返回上一页Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_messages);
    ...
    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    ...
}

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