1

我在带有自定义 ArrayAdapter 的 ListActivity 中的 ListView 出现问题。

当 ListActivity 隐藏(暂停,无论如何)时,ArrayAdpater 中存在的数据似乎消失了。旋转工作正常,但我只在 onCreate() 中的 ArrayAdapter 中分配数组,没有其他地方。该数组存储在全局静态中,因此数组本身应该没问题。但是 ListView 似乎在 Activity 生命周期中的 onCreate 之后的某个地方放置了数组。

我认为应该在 onResume()、onStart() 或 onRestart() 之一上重新分配数组,但我正在寻找更具体的原因,因为这种情况很少发生,而且在我的基于 Cursor 的适配器中永远不会发生。

4

1 回答 1

1

你的问题有点模糊,但我会提出一些建议来考虑。

不要在 onCreate 方法中填充数据。onCreate() 应该用于定义视图。使用 onResume() 加载数据,以便您可以使用 onPause() 有效地清理和节省内存。

确保您的自定义 ArrayAdapter 正确处理 getView,因为这可能是其他问题的根源。

于 2010-10-12T21:29:22.817 回答