2017-05-07 101 views
1

我非常困惑,并且一直在阅读这个主题。在后退按钮上保存片段状态选择

我有一个MainActivity有多个可能的内容(通过导航抽屉之间切换),我已经通过多个片段(让我们称之为Fragment1,Fragment2和Fragment3)设置。

这工作正常。

我的片段之一Fragment3是一个可以延续到新活动View2的视图。

View2有一个后退按钮。当我按下View2后退按钮时,我想在我的MainActivity上看到Fragment3,而不是Fragment1,这是我目前得到的。这是因为OnCreate默认情况下会加载Fragment1。

这样做的最好方法是什么?

非常感谢! (发泄:iOS使这更容易)。

回答

0

Fragments的官方文档声明,在对包含3个片段的第一个活动提交片段事务之前,应确保调用addToBackStack()。 为了回到上次使用的片段从第二个活动,就应该重写onBackPressed()方法,在本次活动:

@Override 
public void onBackPressed() { 
if (getFragmentManager().getBackStackEntryCount() > 0) { 
    getFragmentManager().popBackStack(); 
} else { 
    super.onBackPressed(); 
} 
} 

的文件是关于这个问题非常齐全:Read it here

0

更新:

我只是说这后退按钮代码:

finish(); 
return true; 

我不得不内onOptionsItem做已选择(MenuItem项目)...出于某种原因onBackPressed未被触发。