【发布时间】:2014-05-01 08:43:39
【问题描述】:
我有一个 ListActivity,其中 ListView 由一个自定义数组适配器驱动,其中包含自定义对象。自定义对象是一个站点。
在方向更改时,我当前的实现尝试再次访问数据库以填充 ListView,我想保存当前的 ArrayAdapter,然后在方向更改后将其重新附加到 ListView。
虽然我并不热衷于它,但我接受了这样一个事实,即我需要 Site 来实现 Parcelable,这样我就可以将整个 ArrayAdpter 作为 Paracables 数组保存到包中。
我查看了this post,它几乎完成了我需要做的事情。
但是,我的 Site 对象中包含变量,这些变量也是自定义对象,并且这些对象本身也包含其他对象,例如 DateFormat。我无法从上面链接到的帖子中弄清楚如何实现这一点,以便构成 Site 对象一部分的对象中的对象可以包含在 Parcel 中,因为此示例仅处理字符串和 parcel好像没有 writeObject() 方法!
还有其他选择吗? (我很想完全避免使用 Parcelable,但如果我不得不这样做也没关系)
谢谢 亚伦
【问题讨论】:
-
您不想使用 onRetainNonConfigurationInstance()? (来自“这篇文章”)。
-
@greenapps 谢谢我看到了,但它已被弃用。替代方案似乎依赖于我没有使用的 Fragment(尽管如果它是一个好的解决方案则不会对此产生不利影响)
标签: java android android-listview android-arrayadapter parcelable