我在我的代码中使用的无限适配器,即使我没有数据,也不会停止期待数据。因此,跳动符号,也就是这里的加载符号,一直在循环等待一些数据。
我该如何阻止它?如何让无休止的适配器知道我的数据不足?
另外,我想调整适配器以便它可以使用多个列表。是否可以?多个列表是指嵌入另一个列表中的列表。如果是,是否有关于如何做的例子或任何想法?
我在我的代码中使用的无限适配器,即使我没有数据,也不会停止期待数据。因此,跳动符号,也就是这里的加载符号,一直在循环等待一些数据。
我该如何阻止它?如何让无休止的适配器知道我的数据不足?
另外,我想调整适配器以便它可以使用多个列表。是否可以?多个列表是指嵌入另一个列表中的列表。如果是,是否有关于如何做的例子或任何想法?
如何让无休止的适配器知道我的数据不足?
引用文档:
您的
EndlessAdapter
子类还需要实现cacheInBackground()
. 此方法将从后台线程调用,它需要下载更多数据,这些数据最终将添加到ListAdapter
您在构造函数中使用的数据中。虽然演示应用程序只是休眠了 10 秒,但真正的应用程序可能会进行 Web 服务调用或以其他方式加载更多数据。此方法返回 a
boolean
,true
如果还有更多数据需要获取,则需要返回,false
否则。由于此方法是在后台线程上调用的,因此您不需要 fork 自己的线程。但是,同时,不要尝试直接更新 UI。
如果您希望能够检索数据,但失败了(例如,网络错误),那很好。但是,您应该返回
false
,表明您没有更多数据。
另外,我想调整适配器以便它可以使用多个列表。是否可以?多个列表是指嵌入另一个列表中的列表。
不。Android 不支持列表中的列表的概念。欢迎您查看我的MergeAdapter
(如果您真的希望将多个列表连接在一起)或 Android 的ExpandableListView
(如果您的列表中的列表确实是某种浅树结构)。
可以为您自己的适配器使用不同的数据,这些数据可以是任何类型,例如
ArrayList<HashMap/HashSet<?,List<?>>>
您自己的业务如何在 getView(...) 方法中使用它。您可以实现一个轮询服务,该服务将相应地使用数据更新您的适配器,并在之后使用 setAdapter()。如果没有数据只是闲置...希望这对您有所帮助。