重新创建活动清除列表视图项目

时间:2014-09-26 02:02:35

标签: android android-adapter android-listfragment

首先,我是中国的高年级学生,所以如果我的表情让你困惑,请原谅我,因为我的英语不会那么完美。

我有一个viewPager活动,viewPager包含四个listFragment,它从SQList数据库加载数据。 listFragment使用的适配器是cursorAdapter.EveryThing正确地重新创建活动。我设置后退按钮将活动推回到堆栈。如果系统声称有更多资源来运行其他事物,则活动将被销毁。但是,当我返回活动时,前两个listFragment中的列表项将被清除!但最后两个是正常的。我测试了一些代码,我保证listFragment中的listView和光标在重新创建后都初始化,然后我调用

    listAdapter.changeCursor(mCursor ); //mCursor is the result from database

查询数据库之后。

在我看来,重新创建与创建的唯一区别是onCreate()中的bundle。为什么第一次创建活动会显示正常视图,但重新创建会显示奇怪的结果。

感谢您的时间。 ^ _ ^

1 个答案:

答案 0 :(得分:0)

最后,我自己找到了解决方案。我发现问题是我在TabAdapter中调用getItem()中的setAdapter()。但是,当重新创建活动时,我发现不会调用getItem()。但是,TabViewPager中的listFragment是正常的,这意味着,重新创建活动时,将调用listFragment中的onCreate()和onViewCreated()。

如何修复它:将setAdapter()方法放入listFragment中的onViewCreated()而不是getItem()。