1

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

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

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

谢谢你的帮助。

4

2 回答 2

1

片段指南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 。

于 2013-05-15T12:45:29.523 回答
1

你可以:

  1. 在容器活动中托管数据并从片段访问数据
  2. 使用应用程序类中托管的单例对象/某些类

但请记住,每当您的进程被杀死时,无论如何您都会丢失数据。如果您希望数据在多个进程生成中持久存在,则需要将其存储到 sqllite / 某种持久性中。

于 2012-12-16T21:26:51.097 回答