我的应用程序加载从远程XML文件填充的ListView。需要在多个http请求中获取第一行之后的每一行。
例如,XML文件类似于:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <item>available content</item> <item>unavailable</item> <item>unavailable</item> <item>unavailable</item> <item>unavailable</item>
由此,我创建了一个映射到适配器的ArrayList。
在我的GetView()中,我检查ArrayList中的字符串“不可用”,如果找到,启动AsyncTask,我将相应的行,位置和URL传递给(XML文件中的每个项目也有一个网址价值)。然后在onPostExecute中,我使用row.findViewById()和setText()来更新ListView,其中包含由不可用项目的URL提取的新内容
这一切都有效,但仅适用于屏幕上可见的行。例如如果总共有10行,并且我一次在屏幕上看到5,当我向下滚动到底部时,在更新为正确的值之前,前五个的相同值会显示一秒。然后当我向上滚动时会发生同样的事情。那么,我可以使用的东西就像getView一样,并将每一行传递给AsyncTask,但对于整个ListView只能调用一次吗?
答案 0 :(得分:0)
<adapter>.notifyDataSetChanged();
即可更新。