如果没有要加载的数据,如何以加载停止的方式编辑Endless适配器?

时间:2012-01-16 15:17:17

标签: android listview commonsware-cwac

我在我的代码中使用的无限适配器,即使我不在,也不会停止期待数据。因此,这里的加载符号的跳动符号继续盘旋,期待一些数据。

我该如何阻止它?如何让无限适配器知道我没有数据?

另外,我想调整适配器,以便它可以使用多个列表。可能吗?通过多个列表,我的意思是列在另一个列表中的列表。如果是,是否有关于如何做的示例或任何想法?

2 个答案:

答案 0 :(得分:6)

  

如何让无限适配器知道我没有数据?

引用the documentation

  

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

     

此方法返回boolean,如果还有更多数据需要提取,则需要true,否则为false

     

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

     

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


  

另外,我想调整适配器,以便它可以使用多个列表。可能吗?通过多个列表,我的意思是列在另一个列表中的列表。

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

答案 1 :(得分:1)

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