6

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

我想我应该使用片段作为选项卡而不是活动......这是错误的吗?

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

另外,关于 if(savedInstanceState==null),我已经尝试过了,但它似乎不起作用。我认为这是因为正在重新创建包含我的 Fragments 的 Activity 并且需要重新创建选项卡。

4

1 回答 1

6

类中调用setRetainInstance()了一个方法Fragment,您需要将其设置为true. 这将保存您的片段实例,然后您可以检查onCreate().

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

于 2012-08-05T10:55:11.517 回答