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