在我的应用程序中,我从 Web 服务以 XML 格式获取数据,并对其进行解析并在列表视图中显示数据。问题是如果 Web 服务包含 5000 个对象,那么显示数据需要很长时间。
是否可以在列表视图中显示一些数据并在列表末尾同时获取数据。
请给我一些示例代码。
在我的应用程序中,我从 Web 服务以 XML 格式获取数据,并对其进行解析并在列表视图中显示数据。问题是如果 Web 服务包含 5000 个对象,那么显示数据需要很长时间。
是否可以在列表视图中显示一些数据并在列表末尾同时获取数据。
请给我一些示例代码。
通过使用 AsyncTask,您可以轻松地做到这一点,因为每个正在获取的对象都可以使用 publishProgress() 方法显示在列表视图中,同时还可以向用户更新已加载数据的百分比。
更新:
顺便说一下,根据您的情况,以下由 commonsware https://stackoverflow.com/users/115145/commonsware开发的工具最适合您...
https://github.com/commonsguy/cwac-endless
cwac-endless:提供 EndlessAdapter,它是现有 ListAdapter 的包装器,可添加“无限列表”功能。当用户滚动到列表底部时,如果要检索此列表的更多数据,您的代码将在后台线程中调用以获取新行,然后无缝附加到列表底部。
如果您在 ListAdapter 的 getView 方法中使用 convertView ,那么列表中有多少项目并不重要,因为视图正在被重用。
如果您的 Listadapter 采用 som 排序数组,您可以将项目连续添加到数组中并调用
mListAdapter.notifyDataSetChanged();
每次将新数据添加到列表中时。