gpt4 book ai didi

android - 如何保存自定义 ListView 中的所有项目及其在屏幕旋转时的状态?

转载 作者:行者123 更新时间:2023-11-29 14:15:11 25 4
gpt4 key购买 nike

我有一个由 BaseAdapter 填充的 ListView。

这个 ListView 中的项目是复选框,最后一个项目是一个 TextView 和一个 Button,允许用户向这个列表添加新的复选框。 (其中四个是预定义的,来自 ArrayList,当用户单击列表中的按钮时,他可以通过 DialogBox 添加一个新项目到列表中,这个新项目也是一个 CheckBox)

我注意到当屏幕的方向改变时,新的 CheckBoxes 和之前的 CheckBoxes 的状态都丢失了。

我阅读了有关 Activity 生命周期的内容,并了解了这是如何发生的。我还了解到 onSaveInstanceStateonRestoreInstanceState 方法可用于将有关 Activity 的信息保存在 Bundle 中,稍后使用它来恢复所有内容。

但是,我想不出一种方法来保存有关旧 CheckBox 和新 CheckBox 的状态和文本的所有信息,以及如何添加最后一个项目(TextView 和 Button)的信息.

谢谢。

最佳答案

使用 ListFragment 而不是 ListView。

告诉 fragment setRetainInstance,然后在切换方向时重新附加 fragment 而不是创建新 fragment 。

当 Sam_D 说如果您使用此方法就不能使用配置更改时,他是不正确的。 getView 仍会正常调用,之后您可以将 ListView 恢复到您需要的状态(假设您在 fragment 中的私有(private)字段中保留了适配器)

关于android - 如何保存自定义 ListView 中的所有项目及其在屏幕旋转时的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20219826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com