首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从可打包的ArrayList重新填充列表

从可打包的ArrayList重新填充列表
EN

Stack Overflow用户
提问于 2011-07-19 02:53:21
回答 1查看 1.2K关注 0票数 2

我有一个使用ArrayAdapter的ListView。ArrayAdapter中的项是我创建的自定义对象。

我已经从Parcelable扩展了这个自定义对象。当用户旋转屏幕并保存instanceState时,它会将ArrayList写入outState。重新创建ListActivity时,会将instanceState读回到ArrayList中。在onResume()中,我将ArrayList赋值给ArrayAdapter的items变量,然后使用ArrayAdapter在ListView上调用setAdapter。

不幸的是,ListView中什么也没有显示。

我已经调试过了,在调用setAdapter之前,一切似乎都运行得很好。从instanceState读回ArrayList,所有数据都在那里并被完美地保存下来。

有什么想法吗?

更新:

我已经修复了这个问题。我会试着在这里写一个解释,直到stackoverflow允许我创建一个答案。

在onCreate()中,我实例化了ArrayList的一个新实例。然后,我将该ArrayList提供给我的ArrayAdapter的一个新实例,并使用该ArrayAdapter在ListView上调用setAdapter。在onCreate()之后,调用onRestoreInstanceState()。在onRestoreInstanceState()中,我实际上将ArrayList设置为一个新的ArrayList (从InstanceState读取的那个)。即使我随后将ArrayAdapter的项目变量指向这个新的ArrayList,ArrayAdapter似乎仍然指向旧的空的那个。因此,列表中没有显示任何内容。我修改了onRestoreInstanceState,将读取的ArrayList从InstanceState复制到onCreate()中已经声明的ArrayList。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-24 03:14:39

在onCreate()中,我实例化了ArrayList的一个新实例。然后,我将该ArrayList提供给我的ArrayAdapter的一个新实例,并使用该ArrayAdapter在ListView上调用setAdapter。在onCreate()之后,调用onRestoreInstanceState()。在onRestoreInstanceState()中,我实际上将ArrayList设置为一个新的ArrayList (从InstanceState读取的那个)。即使我随后将ArrayAdapter的项目变量指向这个新的ArrayList,ArrayAdapter似乎仍然指向旧的空的那个。因此,列表中没有显示任何内容。我修改了onRestoreInstanceState,将读取的ArrayList从InstanceState复制到onCreate()中已经声明的ArrayList。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6737842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档