有我可以使用的listviewObject.saveViewStates(view)
函数吗?我有 ListView ,我有其他带有自定义适配器的 ListView ,但这些都没有保存 View 的状态。这些 ListView 中有很多动态生成的内容,因此,当然,当该行超出 View 时,数据会被重置。
我理解 View 持有者背后的概念,但我很难追溯地将我的 ListView 与它们配合。 (空异常、非法状态异常)
既然保存 View 的常见方式是传递 View ,那么 ListView 有一个简单地接受 View 作为变量的内置函数不是有意义吗?我知道 ListView 是在考虑到有限内存的情况下创建的,与 webview 相比,没有办法保存内置状态似乎是疏忽了 - webview 也是在考虑到有限内存的情况下构建的 - 用户可以强制启用/禁用缓存,进行自己的内存管理等。
赞赏洞察力
最佳答案
列表的整体思想是它是动态的并且可能很长 - 因此有很多不可见的行。因此,适配器方法的目标是仅保留屏幕上可见的尽可能多的 View ,并通过运行 getView() 用数据填充它们 - 如果不再需要,它应该重用 View 。
因此,当您将其纳入帐户时,它变得非常简单,应该保存/重新加载背后的数据模型(存储在适配器中),并且在重新加载列表并填充数据时应该重建 ListView 来自模型。
这更符合列表概念。
关于java - Android 如何保存 ListView 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6541926/