Tab Activity中的片段在旋转时丢失所有数据?

时间:2012-08-05 10:23:53

标签: android android-fragments actionbarsherlock android-tabs

我正在使用Sherlock ActionBar库,我有一个SherlockFragmentActivity实现ActionBar.TabListener(对于我的标签),我有3个标签...每个都是SherlockFragment。当我旋转时,整个Activity被重新创建,我丢失了片段中我的onCreate中声明的所有变量。我该如何解决这个问题?

我认为我应该使用片段作为标签而不是活动......这是错的吗?

编辑:我应该提一下,我目前的解决方法是在Tab活动中使用静态列表,并将片段推送到onPause上的那些列表(并在onResume上从他们那里获取内容)。我真的不喜欢这样做,我知道必须有更好的方法。

此外,关于if(savedInstanceState == null),我已经尝试过,它似乎不起作用。我认为这是因为正在重新创建包含我的片段的Activity,并且需要重新创建标签。

1 个答案:

答案 0 :(得分:5)

setRetainInstance()类中有一个名为Fragment的方法,您需要将其设置为true。这将保存片段的实例,然后您可以在onCreate()中检查任何已保存的实例。

此处提供更多信息: http://developer.android.com/reference/android/app/Fragment.html