我正在一个平板电脑应用程序上,主要活动有两个片段。左边的片段是一个列表片段,当用户选择选项卡或从ActionBar中的2个微调器中选择一个项目时,其内容会更新。
最初,我通过覆盖onConfigurationChanged处理方向更改。由于这不是Google所建议的,并且会导致ActionBarSherlock出现问题,因此我已经开始以正确的方式进行操作。我已将片段设置为保留其实例(setRetainInstance)以进行方向更改。
问题是当方向更改活动的OnCreate方法时,将选项卡添加到操作栏,然后选择一个选项卡以导致重新加载列表。旋转器也会发生这种情况,因为在旋转时会选择一个新项目。更改方向后,列表片段无需刷新。
我知道可以保存选项卡和微调器状态,但是如何在onTabSelected和onItemSelected方法中完成操作,从而阻止列表更新?
最佳答案
如何使用onRetainNonConfigurationInstance()
保存某些状态,该状态在方向更改时不应更改?例如,如果遵循@ThomasKJDK's answer,则可以在此方法中设置boolean
。然后,您可以在boolean
中检索此onCreate()
;并根据此boolean
决定执行各种代码段。
有关此方法here的更多详细信息。