我有很多碎片和两个活动,一个是主要活动,可以容纳每个碎片。当我要从任何片段进行第二次活动时它的工作正常但在此之后我按下后退按钮回到我最后添加的片段,在这种情况下我来到主屏幕。我必须有第二个活动我不能用fragment替换它。如何回到活动的最后一个片段?
在另一个案例中,我一定要去浏览器,在浏览器上按回按钮应用程序直接进入主屏幕,那么如何防止这种情况?
答案 0 :(得分:1)
当您从第二个活动返回时,将调用第一个活动的onResume()。因此,您从onResume()管理它,检查后堆栈中的最后一个片段并移动到该片段。
所以你必须在第一个活动的onResume()中使用这个代码
FragmentManager manager = getSupportFragmentManager();
int count = manager.getBackStackEntryCount();
if(count>0){
Fragment mfragment = manager.getBackStackEntryAt(count-1);
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, mFragment);
ft.commit();
}
答案 1 :(得分:0)
尝试使用addToBackStack("YourFragment");
答案 2 :(得分:0)
你可以使用:
getSupportFragmentManager().popBackStack();