Android 从活动返回特定片段
我正在开发一个基于片段的应用程序,主要活动实现幻灯片导航。我有三个片段,“A”,“B”,“C”,假设我从“B”片段遍历到一个独立的活动。当我试图从活动返回时,它将我降落在“A”片段上,我想从我遍历到活动的地方返回到相同的片段 我正在使用下面的代码处理片段Android 从活动返回特定片段,android,android-fragments,navigation-drawer,Android,Android Fragments,Navigation Drawer,我正在开发一个基于片段的应用程序,主要活动实现幻灯片导航。我有三个片段,“A”,“B”,“C”,假设我从“B”片段遍历到一个独立的活动。当我试图从活动返回时,它将我降落在“A”片段上,我想从我遍历到活动的地方返回到相同的片段 我正在使用下面的代码处理片段 if (fragment != null) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.commit();
}
如何做到这一点?您正在处理的问题在Android中非常常见,他们已经在一篇文章中解释过
因此,基本上,您希望使用
BackStack
,但对于您的特定问题,有另一种解决方案:当您移动到其他活动时,原始活动(包含B)基本上没有被破坏,因此,您可以做的是在该活动中放置状态(包含A、B和C的活动),并且,你从你的独立活动中回来,你的onResume
将被触发,你只需覆盖它,让它显示你想要的片段。查看我下面的代码
@Override
public void onBackPressed() {
super.onBackPressed();
FragmentManager fm = getSupportFragmentManager();
if (fm.getBackStackEntryCount() == 1) {
//your code goes here
} else if (fm.getBackStackEntryCount() > 1) {
fm.popBackStack();
//your code goes here
} else {
fm.popBackStack();
//your code goes here
}
}
计算已跨越的片段的返回数,如果需要任何帮助,请对其进行注释您需要使用popBackStack和Backstack entry count重定向到您想要的位置您可以告诉我使用此项的代码和位置吗?如何放置状态?我会执行类似于活动的枚举状态{FRAGMENT_A,FRAGMENT_B,FRAGMENT_C}然后在父
活动中有一个活动状态
,每次调用FragmentManager