我对 Android 在 View 方向变化中保留什么以及不保留什么感到有点困惑。
有些东西似乎可以很好地保留,而另一些东西似乎则不然..所以我不确定这是我的代码还是其他东西。 (我认为我在做一些愚蠢的事情)
我拥有的是一个带有 ListView 的 View , ListView 有一个简单的适配器和一个要放入 ListView 中的 map 项数组。
当方向改变时,我知道 Activity 被销毁并重新创建,所以我假设我的简单适配器及其与 ListView 的联系消失了..所以 ListView 不会旋转填充,我需要使用onRetainNonConfigurationInstance 或 onSaveInstanceState 方法来传递适配器或值列表?
这似乎有点过分了,我不敢相信 Google 的聪明人没有更简单的方法来处理这个问题。 ListView 有一个 ID,定向后我可以向其中添加项目,它工作得很好,但是它只是不再保留以前的值。
我唯一的解决方法是明确传递列表内容吗?是否是我正在创建一个新的 SimpleAdapter 并将其链接到 onCreate 中的列表导致了问题?或者事实上,当 Activity 进行时,我链接到适配器的项目数组被删除了?这似乎不需要这么多工作来完成......我错过了什么吗?
最佳答案
不,您还可以通过 Activity 生命周期拥有一个持久模型,如下所示:
定义一个单例应用程序,并提供获取单例模型的方法。
在创建时从模型中获取数据。
由于您的模型不会重新创建但会持续存在,因此这可以用作通过旋转更改保留对象的解决方法。
问候, 史蒂芬
关于Android ListView 不通过方向更改保留值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282562/