Android ListView不通过方向更改保留值

Android ListView不通过方向更改保留值,android,listview,orientation,Android,Listview,Orientation,我有点困惑,Android在视图方向的改变中到底保留了什么,它没有保留什么 有些东西它似乎很好地抓住了,有些东西它似乎没有。。所以我不确定这是我的代码还是别的什么。(我想我在做傻事) 我所拥有的是一个包含listview的视图,listview有一个简单的adapater和一个要放入listview的映射项数组 当方向改变时,我知道活动被销毁并重新创建,所以我假设我的简单适配器及其与listview的关联消失了。。所以listview不会循环填充,我需要使用onRetainonConfigura

我有点困惑,Android在视图方向的改变中到底保留了什么,它没有保留什么

有些东西它似乎很好地抓住了,有些东西它似乎没有。。所以我不确定这是我的代码还是别的什么。(我想我在做傻事)

我所拥有的是一个包含listview的视图,listview有一个简单的adapater和一个要放入listview的映射项数组

当方向改变时,我知道活动被销毁并重新创建,所以我假设我的简单适配器及其与listview的关联消失了。。所以listview不会循环填充,我需要使用onRetainonConfigurationInstance或onSaveInstanceState方法来传递适配器或值列表

这似乎太过分了,我不敢相信谷歌那些精明的家伙没有更简单的方法来处理这件事。。listview有一个ID,在定向之后,我可以向它添加项目,它工作得很好,但它不能保持以前的值


这是我唯一能明确传递列表内容的方法吗?是我正在创建一个新的SimpleAdapter并将其链接到onCreate中的列表这一事实导致了这个问题吗?或者是我链接到适配器的项目数组在活动结束时被抽打出来的事实??这似乎不需要做这么多工作来完成。。我遗漏了什么吗?

不,您也可以在整个活动生命周期中拥有一个持久模型,如下所示:

定义一个singleton应用程序,使用一个方法获取您的singleton模型

在创建时,从模型中获取数据

由于您的模型不会重新创建,但会保持不变,因此这可以作为通过旋转更改来保留对象的解决方法

问候,,
Stéphane

Stephane,谢谢,单例全局解决方案虽然不优雅,但确实可以做到这一点,而且比序列化对象和条件化初始化例程麻烦少多了。我不知道我是否会将此模型用于复杂的应用程序,但对于我目前正在开发的简单应用程序,它工作得很好,谢谢。非常好!我在从服务器下载图像时遵循了这个模式。它也避免了OOM错误。