通过子片段的后退按钮导航回父活动

时间:2015-05-15 14:08:21

标签: android android-layout android-fragments android-activity fragment-backstack

我有一个主要活动和2个片段。在我的主要活动中,我有导航抽屉,可以浏览片段。我像这样按下后退按钮:

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 0) {
        getFragmentManager().popBackStackImmediate();
    } else {
        super.onBackPressed();
    }
}

在两个片段之间导航后,当我点击后退按钮时,我从后台获取最后一个片段。但是,不应该从片段导航到另一个片段。

更清晰:

我有一个活动(带有导航抽屉)和2个碎片。从导航抽屉我可以根据需要多次访问这两个片段。但是,当我按下后退按钮时,我希望始终返回main_activity.xml

3 个答案:

答案 0 :(得分:2)

当您浏览活动时,最好的方法是使用Intent这样的(如果我理解您的问题):

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

答案 1 :(得分:0)

&[T]

答案 2 :(得分:0)

你必须通过标签找到片段并检查它是否为空,如果它为null则替换该片段或者如果片段被隐藏则再次显示片段。

    @Override
    public void onBackPressed() {
             Fragment fr = getSupportFragmentManager()
                .findFragmentByTag("Fragment_Tag");

        if (fr == null) {
            getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.container,
                        new Main_Fragment(), "Fragment_Tag").commit();
        } else {
            finish();
        }
}