从Web服务加载前20个列表项,然后从android中的webservice获取下一个20

时间:2012-03-13 18:42:51

标签: android web-services listview

我正在开发一个基于web服务的应用程序并获取所有数据并使用一个图像和3个文本视图将其扩展到列表中。但它会获取来自Web服务的所有项目,这些项目在获取数据时过于耗费时间。

我已经达到了一些示例,例如“拉到刷新”和“在列表视图后查看”这个视图点击它加载数据。

我已将Json和Ksoap2库用于Web服务,而response将采用JSON格式。 提前谢绝。

2 个答案:

答案 0 :(得分:0)

我不确定我理解你的问题。您不想一次获取所有数据,因为它耗费了大量时间?

更好的方法是从某个适配器(BaseAdapter或ArrayAdapter)继承并覆盖getView方法(它是一般模式)。在getView中,您只能获取一行数据,而不是所有数据。

基本上,getView返回ListView的一行视图。您还可以缓存通过convertView显示的每一行。 (here是如何将getView与convertView一起使用的一个很好的例子。

答案 1 :(得分:0)

我能看到你的getView方法吗? 据我所知,只要某些行可见,就会调用getView,因此您应该在getview方法中实现逻辑,在该方法中只检索这一行的数据。这样,只有在必要时才会调用您的Web服务。

但如果这不是您的想法,您可以执行以下操作。 第一次,您只获取20个项目的数据并将它们加载到某个ArrayList中。然后,每当您按下更多加载时,就会实现OnScrollListener并将新数据添加到列表(ArrayList,而不是listView)。因此,即使您使用所有数据更新列表视图,也会从内存加载,而不是从您的服务加载。这是关于OnScrollListener的帖子。