我正在使用Sherlock ActionBar库,我有一个SherlockFragmentActivity实现ActionBar.TabListener(对于我的标签),我有3个标签...每个都是SherlockFragment。当我旋转时,整个Activity被重新创建,我丢失了片段中我的onCreate中声明的所有变量。我该如何解决这个问题?
我认为我应该使用片段作为标签而不是活动......这是错的吗?
编辑:我应该提一下,我目前的解决方法是在Tab活动中使用静态列表,并将片段推送到onPause上的那些列表(并在onResume上从他们那里获取内容)。我真的不喜欢这样做,我知道必须有更好的方法。
此外,关于if(savedInstanceState == null),我已经尝试过,它似乎不起作用。我认为这是因为正在重新创建包含我的片段的Activity,并且需要重新创建标签。
答案 0 :(得分:5)
setRetainInstance()
类中有一个名为Fragment
的方法,您需要将其设置为true
。这将保存片段的实例,然后您可以在onCreate()
中检查任何已保存的实例。
此处提供更多信息: http://developer.android.com/reference/android/app/Fragment.html