如何将我的ActionBar的“上一级”按钮设置为像手机的“返回”按钮一样工作?

14

我有一个包含FragmentViewPager。当在Fragment中点击一个按钮时,我会启动一个Activity。当我在Activity中按下手机的返回按钮时,将我带回到之前的屏幕,即包含ViewPager中的Fragment的屏幕。

我想要在我的ActionBar中启用"向上"按钮,为此,我编写了以下代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.detail);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
}

现在显示了“向上”按钮,但单击它不能将我带回到上一个屏幕。我希望“向上”按钮与“返回”按钮执行相同的操作。

我该怎么做?我做错了什么吗?

谢谢。


1
不应该将上方按钮用作返回按钮。上方按钮的目的是向上导航,而不是返回。您应该按照其设计意图使用它。http://developer.android.com/guide/topics/ui/actionbar.html#Up - Benoît Bouré
1个回答

48

当点击向上按钮时,您还需要实现应该执行的操作:

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

    return super.onOptionsItemSelected(item);
}

2
这是我遇到的问题。我期望按钮能够自动连接,但是当我点击它时,什么也没有发生。在使用上述代码覆盖onOptionItemSelected()之后,它像个冠军一样工作了。谢谢! - proudgeekdad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接