我在我的代码中使用的无限适配器,即使我不在,也不会停止期待数据。因此,这里的加载符号的跳动符号继续盘旋,期待一些数据。
我该如何阻止它?如何让无限适配器知道我没有数据?
另外,我想调整适配器,以便它可以使用多个列表。可能吗?通过多个列表,我的意思是列在另一个列表中的列表。如果是,是否有关于如何做的示例或任何想法?
答案 0 :(得分:6)
如何让无限适配器知道我没有数据?
您的
EndlessAdapter
子类还需要实现cacheInBackground()
。此方法将从后台线程调用,并且需要下载更多数据,这些数据最终将添加到您在构造函数中使用的ListAdapter
。虽然演示应用程序只是休眠10秒钟,但真正的应用程序可能会进行Web服务调用或以其他方式加载更多数据。此方法返回
boolean
,如果还有更多数据需要提取,则需要true
,否则为false
。由于在后台线程上调用此方法,因此您不需要分叉自己的线程。但是,与此同时,请勿尝试直接更新UI。
如果您希望能够检索数据但是失败(例如,网络错误),那很好。但是,您应该返回
false
,表示您没有更多数据。
另外,我想调整适配器,以便它可以使用多个列表。可能吗?通过多个列表,我的意思是列在另一个列表中的列表。
没有。 Android不支持列表中列表的概念。欢迎您查看我的MergeAdapter
(如果您的意思是希望将多个列表连接在一起)或Android ExpandableListView
(如果您的列表中的列表实际上是某种浅树)结构)。
答案 1 :(得分:1)
可以为您自己的适配器使用不同的数据,这些数据可以是任何类型,例如
ArrayList<HashMap/HashSet<?,List<?>>>
如何在getView(...)方法中使用它是您自己的事。您可以实现一个轮询器服务,它将相应地更新您的适配器和之后的setAdapter()。如果没有数据闲置......
希望这有助于升技。