加载ListView时更新ImageView异步

时间:2013-10-02 13:59:40

标签: android listview android-listview android-asynctask

这篇文章是关于Android的。 以下是正在发生的事情:

我正在加载JSON并将其放入ListView。现在,此ListView中的项目基本上是ImageView和TextView。

因为ImageView的图像最大可达2MB,所以我想在加载ListView(也完成Async)后加载ImageView的Drawable异步。

我该怎么做?我已经创建了2个AsyncTasks,一个用于加载列表,另一个用于加载基于URL的Drawable。两者都有效,但我不知道如何通知ListView Drawable已更新。

目前,当我向下滚动并且项目不在视图中时,Drawable会显示。然后我向后滚动,我看到图像已更新。我想这是因为我在getView(ArrayAdapter)中“设置”了这个图像,当一个项目进入视图时就会调用它。

所有数据都存储在BlablaItem的ArrayList中。 假设BlablaItem包含“String title”,“String imageUrl”和“Drawable image”。 完美的是只在类中更新这个Drawable,并且ListView会自动更新它......

所以我的问题是如何很好地完成所有这些,在哪里为Drawable创建我的AsyncTask(当前在循环中处理JSON),在哪里创建我的AsyncTask(当前在ArrayAdapter构造函数中)以及如何发信号通知ListView Drawable已更新。

1 个答案:

答案 0 :(得分:0)

如果listadpater拥有blablaItems的这个ArrayList,那么在添加一个新的drawable之后调用适配器上的notifyDatasetChanged就足够了。