0

我有一个非常漂亮的 MergeAdapter,其中包含一堆自定义视图和一些自定义 ListAdapter。这个 MergeAdapter 驱动一个 ListActivity,它显示每 x 秒更新一次的内容。

目前我只是创建一个新的 MergeAdapter,创建并添加我所有的自定义视图(这包括一些 ImageViews) - 并在我的活动中调用 ListView 上的 setAdapter。

大约 10 分钟的更新后,我用完了堆空间并崩溃了。

最终因为添加了新的ImageView,抛出了如下异常:

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

使用更简单的适配器(如 ArrayAdapter),我只需更新数据集,然后调用

notifyDataSetChanged()

在适配器上。

是否有“更新” MergeAdapter 的类似/推荐方法?或者我应该遍历可能复杂的 MergeAdapter 的内容并更新单个视图?

4

1 回答 1

0

是否有“更新” MergeAdapter 的类似/推荐方法?

notifyDataSetChanged()工作,AFAIK。当前MergeAdapter有代码可以将其ListAdapters内部的任何更改影响到对MergeAdapter. 这可能还没有经过足够的测试,所以如果您有一个示例应用程序可以演示,请发布指向它的链接或将其发送给我(提及这个 SO 问题)。

于 2011-08-30T07:15:20.867 回答