2013-11-04 131 views
2

关于配置更改,在activityfragment之间保存数据的正确方法是什么?我有activityNavigationDrawer,我想保存在ListView中的项目的当前选定位置,但也保存数据从fragment。我试图保存活动的onSaveInstanceState中的对象,但在这种情况下,我无法将数据保存在片段中(在片段类中使用onSaveInstanceState)。在配置更改时,在activity及其fragment中保存数据的正确方法是什么?在活动和片段中保存数据的正确方法

+0

枪手有很好的答案,你可以接受它,如果它帮助你 – AndrewS

回答

1

A.片段
也许处理方向改变的是调用setRetainInstance(true)onCreate的最佳途径。通过这种方式,片段被分离,但其实例在方向改变时不被破坏。活动重新创建时,将附加相同的片段实例。但是,您需要非常小心,不要保留以前活动的某些内容并导致内存泄漏。
保留数据的其他选项是覆盖onSaveInstanceState

B.活动
一旦你移动你的片段中的大量数据,那么在理论上,你不应该担心上的活动休闲太多。如果您已为视图正确设置唯一ID,则Android应保留以前输入的数据。如果你有一些模型数据,然后在savedInstance捆绑。再次:覆盖onSaveInstanceState并从onCreate Bundle参数中获取数据。