从活动中返回后保留片段

时间:2016-10-07 07:49:03

标签: java android android-fragments

我有几个由活动维护的片段。该应用程序从' Home'片段,当我去片段A'然后转到“设置”活动,然后从“设置”活动中按回“片段A'取而代之的是' Home'分段。我如何保留片段A'的状态?从“设置”返回时保持抽屉打开活动?

为了澄清,我想回到我发起活动的片段,在这种情况下是设置活动,而不是回到主页'分段。任何帮助将不胜感激,谢谢!

这是我的抽屉代码:

   if (id == R.id.fragOne) {
        fragment1 = new FragmentOne();
        android.support.v4.app.FragmentManager fragmentManager1 = getSupportFragmentManager();
        fragmentManager1.beginTransaction()
                .replace(R.id.container, fragment1, "frag1")
                .commit();
    } else if (id == R.id.fragTwo) {
        fragment6 = new fragmentTwo();
        android.support.v4.app.FragmentManager fragmentManager2 = getSupportFragmentManager();
        fragmentManager2.beginTransaction()
                .replace(R.id.container, fragment2, "frag2")
                .commit();
    } else if(id == R.id.helpDrawer){
        Intent drawerHelp = new Intent(MainActivity.this, Help.class);
        startActivity(drawerHelp);

    }
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer != null) {
        drawer.closeDrawer(GravityCompat.START);
    }
    return true;

1 个答案:

答案 0 :(得分:1)

尝试在设置活动中按下后退按钮时添加finish()。当我们从其他活动中调用一个活动时,会保存调用者活动的实例状态,因此您将片段保存在堆栈中,然后调用被调用的活动,因此如果您希望返回,则只需完成第一个活动,然后将调用调用者活动的实例状态,您将获得调用设置活动的相同片段。 因此,请在SettingsActivity中添加此代码。

@Override
onBackPressed{finish();}

这将解决您的碎片问题。我不确定抽屉是否保持打开状态。