Android ListView 从服务器加载更多数据
Android ListView load more data from Server
我已经使用 ListView 使用 Arrayadapter 从外部服务器加载大量数据。但问题是加载需要更多时间。有没有办法向下滚动并从服务器加载数据。请给我建议。
谢谢。
是的,但它需要从客户端和服务器端更改实现。您需要定义一个偏移量,假设为 25,这意味着在第一次服务器调用时,将立即获取 25 个项目并将其加载到适配器中。现在第二部分是这样的:
您开始滚动并到达第 15 个项目,此时您需要再次使用偏移量 50 再次调用服务器,以便从服务器获取接下来的 25 个项目,然后附加到之前的列表。这使得总数没有。适配器中的项目数为 50。现在您需要在达到第 15+25=40 个项目时再次调用服务器。这还在继续。
为了进一步提高性能,如果你有数百条数据,你需要在向上滚动时反向操作。这意味着假设您在滚动时达到了第 100 个项目 down.This 意味着在您的列表视图适配器中有超过 100 个项目,此时您需要开始从列表的顶部插槽中删除项目,并且您需要再次向上滚动时获取它们。
当然,如果您的列表中确实有很多项目,甚至 listview 项目很重,那么所有这些都需要完成。
我已经使用 ListView 使用 Arrayadapter 从外部服务器加载大量数据。但问题是加载需要更多时间。有没有办法向下滚动并从服务器加载数据。请给我建议。
谢谢。
是的,但它需要从客户端和服务器端更改实现。您需要定义一个偏移量,假设为 25,这意味着在第一次服务器调用时,将立即获取 25 个项目并将其加载到适配器中。现在第二部分是这样的:
您开始滚动并到达第 15 个项目,此时您需要再次使用偏移量 50 再次调用服务器,以便从服务器获取接下来的 25 个项目,然后附加到之前的列表。这使得总数没有。适配器中的项目数为 50。现在您需要在达到第 15+25=40 个项目时再次调用服务器。这还在继续。
为了进一步提高性能,如果你有数百条数据,你需要在向上滚动时反向操作。这意味着假设您在滚动时达到了第 100 个项目 down.This 意味着在您的列表视图适配器中有超过 100 个项目,此时您需要开始从列表的顶部插槽中删除项目,并且您需要再次向上滚动时获取它们。
当然,如果您的列表中确实有很多项目,甚至 listview 项目很重,那么所有这些都需要完成。