0

我在我的代码中使用的无限适配器,即使我没有数据,也不会停止期待数据。因此,跳动符号,也就是这里的加载符号,一直在循环等待一些数据。

我该如何阻止它?如何让无休止的适配器知道我的数据不足?

另外,我想调整适配器以便它可以使用多个列表。是否可以?多个列表是指嵌入另一个列表中的列表。如果是,是否有关于如何做的例子或任何想法?

4

2 回答 2

6

如何让无休止的适配器知道我的数据不足?

引用文档

您的EndlessAdapter子类还需要实现cacheInBackground(). 此方法将从后台线程调用,它需要下载更多数据,这些数据最终将添加到ListAdapter您在构造函数中使用的数据中。虽然演示应用程序只是休眠了 10 秒,但真正的应用程序可能会进行 Web 服务调用或以其他方式加载更多数据。

此方法返回 a booleantrue如果还有更多数据需要获取,则需要返回,false否则。

由于此方法是在后台线程上调用的,因此您不需要 fork 自己的线程。但是,同时,不要尝试直接更新 UI。

如果您希望能够检索数据,但失败了(例如,网络错误),那很好。但是,您应该返回false,表明您没有更多数据。


另外,我想调整适配器以便它可以使用多个列表。是否可以?多个列表是指嵌入另一个列表中的列表。

不。Android 不支持列表中的列表的概念。欢迎您查看我的MergeAdapter(如果您真的希望将多个列表连接在一起)或 Android 的ExpandableListView(如果您的列表中的列表确实是某种浅树结构)。

于 2012-01-16T15:27:53.527 回答
1

可以为您自己的适配器使用不同的数据,这些数据可以是任何类型,例如 ArrayList<HashMap/HashSet<?,List<?>>>您自己的业务如何在 getView(...) 方法中使用它。您可以实现一个轮询服务,该服务将相应地使用数据更新您的适配器,并在之后使用 setAdapter()。如果没有数据只是闲置...希望这对您有所帮助。

于 2012-01-16T15:25:11.447 回答