更新MergeAdapter的内容

时间:2011-08-29 20:29:25

标签: android commonsware-cwac

我有一个漂亮漂亮的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的内容并更新单个视图吗?

1 个答案:

答案 0 :(得分:0)

  

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

notifyDataSetChanged()有效,AFAIK。当前MergeAdapter的代码可以将其中ListAdapters内的任何更改归咎于MergeAdapter中已更改的注册内容。这可能还没有经过足够的测试,所以如果你有一个示例应用程序,但是发布一个链接或发送给我(提到这个问题)。