我使用的是包含多个片段的ViewPager。(选项卡导航+滑动)。在我的第一个ListFragment中,我使用一个自定义适配器显示了一个数据列表。
问题是,当滑动到Tab #3然后返回时,我的ArrayList的大小是0。
如何将一个片段的所有数据保存在内存中?我不想再次从数据库中读取它,我想要的是当返回到这个片段时,一切都应该保持不变……
谢谢你的帮助。
发布于 2012-12-16 21:26:51
您可以:
中托管的单个对象/某个类来访问片段
但请记住,每当您的进程被终止时,您在任何情况下都会丢失数据。如果您希望数据跨多个进程派生持久存储,则需要将其存储到sqllite /某种持久性中。
发布于 2013-05-15 12:45:30
在fragment guide FragmentList示例中,您可以找到:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
您以后可以像这样使用它:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
我是片段的初学者,但它似乎解决了您的问题;) onActivityCreated在片段从后台堆栈返回后调用。
https://stackoverflow.com/questions/13905607
复制