Android如何保存列表视图的状态

时间:2011-06-30 22:45:39

标签: java android listview state retain

我可以使用listviewObject.saveViewStates(view)功能吗?我有listviews,我有自定义适配器的其他列表视图,但这些都没有保存视图的状态。这些列表视图中有很多动态生成的内容,当然,当该行超出视图时,数据会被重置。

我理解了视图背后的概念,但我很难追溯到我的列表视图。 (nullexceptions,illegalstateexceptions)

由于保持视图的常用方法是传递视图,因此listview有一个内置函数可以简单地接受视图作为变量吗?我知道列表视图是在内存有限的情况下创建的,它似乎疏忽了,没有办法保存内置的状态,与webview相比 - 它也是内置有限的内存 - 用户可以强制启用/禁用缓存,进行自己的内存管理等。

洞察力赞赏

1 个答案:

答案 0 :(得分:2)

列表的整个想法是它是动态的并且可能很长 - 所以有很多行是不可见的。因此,适配器方法的目的是仅在屏幕上保留尽可能多的视图,并通过运行getView()来填充数据 - 如果不再需要,应该重用视图。

因此,当您在帐户中使用它时,它变得非常简单,它是应该保存/重新加载的数据模型(存储在适配器中),并且当重新加载列表并填充数据时应该重建列表视图从模型。

这更符合列表概念。