2014-09-26 87 views
0

首先,我是中国的一名高年级学生,所以如果我的表情让你困惑,请原谅我,因为我的英语不会那么完美。重新创建活动清除列表视图项目

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

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

数据库。

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

谢谢你的时间。^_^

+0

那么你想达到什么!目前尚不清楚! – Pavlos 2014-09-26 02:23:47

+0

当我从回栈中回来时,viewPager中的listFragment项将被清除。如何解决这个问题。这是我的问题。谢谢 – 2014-09-27 01:11:46

+0

然后,也许尝试保存你的片段当前状态,并在你回来时检索它。 – Pavlos 2014-09-27 01:12:39

回答

0

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

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