获取ActionBar upIntent,就像后退按钮一样

时间:2014-10-07 08:57:55

标签: android tabs android-actionbar fragment

我正在制作这个项目,我的MainActivity中有3个固定标签。在选项卡2和3上,我有一些按钮,可以将用户导航到新的片段活动。在片段活动中,我使用了ActionBar.setDisplayHomeAsUpEnabled(true)。我的问题是,我想将用户带回到前一个片段(现在使用操作栏中的向上按钮和后退按钮完成),但我想让用户访问之前的选项卡。当我使用后退按钮上升时,我将转到我开始新片段的选项卡。但是当我在操作栏中使用upIntent时,我会看到标签1.我该如何解决这个问题?

这是来自片段活动的代码,其中找到了upIntent操作栏按钮。

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent upIntent = new Intent(this, MainActivity.class);
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                TaskStackBuilder.from(this)
                        // If there are ancestor activities, they should be added here.
                        .addNextIntent(upIntent)
                        .startActivities();
                finish();
            } else {
                NavUtils.navigateUpTo(this, upIntent);
            }
            return true;
    }
    return super.onOptionsItemSelected(item);
}

1 个答案:

答案 0 :(得分:0)

所以我设法找到了解决方案。我将onOptionsItemSelected布尔值更改为:

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