我有几个由活动维护的片段。该应用程序从' 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;
答案 0 :(得分:1)
尝试在设置活动中按下后退按钮时添加finish()。当我们从其他活动中调用一个活动时,会保存调用者活动的实例状态,因此您将片段保存在堆栈中,然后调用被调用的活动,因此如果您希望返回,则只需完成第一个活动,然后将调用调用者活动的实例状态,您将获得调用设置活动的相同片段。 因此,请在SettingsActivity中添加此代码。
@Override
onBackPressed{finish();}
这将解决您的碎片问题。我不确定抽屉是否保持打开状态。