【发布时间】:2011-04-27 03:24:27
【问题描述】:
我的应用程序加载了一个从远程 XML 文件填充的 ListView。第一行之后的每一行都需要在多个 http 请求中获取。
例如,XML 文件如下所示:
据此,我创建了一个映射到适配器的 ArrayList。
在我的 GetView() 中,我检查 ArrayList 中的字符串“不可用”,如果找到,启动一个 AsyncTask,我将相应的行、位置和 URL 传递给(XML 文件中的每个项目也有一个网址值)。然后在 onPostExecute 中,我使用 row.findViewById() 和 setText() 用不可用项目的 URL 获取的新内容更新 ListView
这一切都有效,但仅适用于屏幕上可见的行。例如如果总共有 10 行,并且我一次在屏幕上看到 5 行,那么当我向下滚动到底部时,前 5 行的相同值会显示一秒钟,然后再更新为正确的值。然后当我向上滚动时会发生同样的事情。那么,有没有我可以使用的类似于 getView 并将每一行传递给 AsyncTask 的东西,但对于整个 ListView 只调用一次?
【问题讨论】: