我正在使用带有多个片段的 ViewPager。(标签导航+滑动)。在我的第一个 ListFragment 中,我使用自定义适配器显示数据列表。
问题是,当切换到 Tab #3 然后返回时,我的 ArrayList 的大小为 0。
如何将 Fragment 的所有数据保存在内存中?我不想再从数据库中读取它,我想要的是当返回这个片段时,一切都应该保持不变......
谢谢你的帮助。
我正在使用带有多个片段的 ViewPager。(标签导航+滑动)。在我的第一个 ListFragment 中,我使用自定义适配器显示数据列表。
问题是,当切换到 Tab #3 然后返回时,我的 ArrayList 的大小为 0。
如何将 Fragment 的所有数据保存在内存中?我不想再从数据库中读取它,我想要的是当返回这个片段时,一切都应该保持不变......
谢谢你的帮助。
在片段指南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);
}
}
我是 Fragments 的初学者,但它似乎解决了您的问题;)在片段从回栈返回后调用onActivityCreated 。
你可以:
但请记住,每当您的进程被杀死时,无论如何您都会丢失数据。如果您希望数据在多个进程生成中持久存在,则需要将其存储到 sqllite / 某种持久性中。