我正在创建LoginActivity-> OtherActivity->片段1-> Fragment_2。当我单击Back Button时,我又回到了Fragment_1,当我再次单击BackButton时,我在LoginActivity中为什么?
我想在片段_1中单击BackButton后返回MainActivity,然后在下一个单击BackButton(在MainActivity中)之后我想回到主屏幕
我该怎么做?
在MainActivity中我有:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
答案 0 :(得分:0)
添加片段时调用addToBackStack
。例如:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.container, fragment);
ft.addToBackStack(backStateName);
ft.commit();
此外,在启动OtherActivity之前,请在LoginActivity上调用finish()
。
答案 1 :(得分:0)
首先在导航到OtherActivity时从堆栈中删除LoginActivity。在演示片段之后使用@ ahomphophone的答案。之后,返回堆栈应该按预期工作,而不需要覆盖' onBackPressed'。
注意:您提供的堆栈上没有MainActivity。
更新:如果您想留在OtherActivity中使用此代码
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ) {
getFragmentManager().popBackStack();
}
}