提问者:小点点

选项卡活动中的片段在旋转时丢失所有数据?


我正在使用夏洛克ActionBar库,并且我有一个实现ActionBar的SherlockFragmentActivity。TabListener(用于我的选项卡)和我有3个选项卡...每一个都是雪洛克碎片。当我旋转时,整个活动被重新创建,我丢失了片段中onCreate中声明的所有变量。我该如何着手解决这个问题?

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

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

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


共1个答案

匿名用户

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

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