2017-02-22 90 views
0

我的应用程序的基本导航是一个活动中的选项卡栏,其中每个选项卡都是自己的片段。我试图让后退按钮工作回到最后一个标签页。我可以后退按钮的工作/显示,如果活动是由Java类活动的使用这种的第一个标签:向上导航:从活动到片段:Android Studio

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

,这在AndroidManifest.xml:

<activity android:name=".CreateNewPost" android:parentActivityName=".MainActivity"></activity> 

这工作正常,但是当我从其他选项卡中的按钮去一个新的活动,如果我使用相同的方法,它会去tab1。我如何告诉它去一个特定的选项卡或最后一个活动片段? 任何建议都会有帮助!

回答

0

当您启动新的活动时,旧的或者暂停或停止,如OnPause()OnStop()方法已被调用。然后,当您回到之前的活动时,它会启动(OnStart())或重新登录(OnResume())。有时候,当分别使用OnDestroy()OnCreate()导航时,活动将被破坏并重新创建。

我能想到的最有保证的方式是将第一个活动的状态永久存储在某个位置,并且当用户导航回到它时,检查已存储的内容并显示该片段。 您可以使用SharedPreferences来存储这种数据,see the google developer documentation on that here。或onSaveInstanceState(Bundle savedInstanceState)check out this SO question on saving activity state.虽然从答案很明显,onSaveInstanceState不应该在你的具体情况下工作,但你应该看看它的任何方式,因为它在其他情况下很有用,例如改变屏幕方向。