Android Fragments - 如何保存数据?

时间:2012-12-16 21:23:30

标签: android android-fragments

我正在使用带有多个片段的ViewPager。 (标签导航+滑动)。 在我的第一个ListFragment中,我正在使用自定义适配器显示数据列表。

问题是,当转换到Tab#3然后返回时,我的ArrayList的大小为0。

如何将片段的所有数据保存在内存中?我不想再从数据库中读取它,我只想回到这个片段时一切都应该保持不变...

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

你可以:

  1. 托管容器活动中的数据并访问片段
  2. 中的数据
  3. 使用单个对象/应用程序类中托管的某个类
  4. 但请记住,无论何时您的进程被杀,您都会在任何情况下丢失数据。如果您希望数据在多个进程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 在片段从后栈返回后被调用。