我正在开发android应用程序,假设我在我的应用程序中有以下活动:act1,act2和act3。
上面的每个活动都有一个片段,所以act1 - > frag1,act2 - > frag2等等。
当我的应用程序运行时,我打开了frag1然后按下了手机上的主页按钮。我将被引导到我的手机主页。
如果我按下启动的图标或再次按下后退按钮,应用程序将恢复/打开act1而不是frag1。
所以我的问题在这里,如何让应用程序打开最近的片段而不是活动? frag1而不是act1。
谢谢, 如果您需要更多信息,例如代码示例,请告诉我。
答案 0 :(得分:0)
全局创建整数
int CurrentFragment=-1;
每当你在Activity中调用Fragment时,为Integer设置一个值,如下所示,Value应该对每个片段都是唯一的。
Fragment fragment1=new FirstFragment()
CurrentFragment=0;
ft.replace(R.id.content_user_home, fragment1, fragment.toString());
ft.addToBackStack(backStateName);
ft.commit();
如果你正在调用另一个像这样的片段调用
Fragment fragment2=new SecondFragment()
CurrentFragment=1;
ft.replace(R.id.content_user_home, fragment1, fragment.toString());
ft.addToBackStack(backStateName);
ft.commit();
在OnResume中检查Switch case中的CurrentFragment值
Switch(CurrentFragment){
case 0:
Fragment fragment1=new FirstFragment()
CurrentFragment=0;
ft.replace(R.id.content_user_home, fragment1, fragment.toString());
ft.addToBackStack(backStateName);
ft.commit();
break;
case 1:
Fragment fragment2=new SecondFragment()
CurrentFragment=1;
ft.replace(R.id.content_user_home, fragment1, fragment.toString());
ft.addToBackStack(backStateName);
ft.commit();
break;
}