Geoquery填充ListView / RecyclerView

时间:2015-03-01 22:57:26

标签: android listview firebase android-recyclerview geofire

我正在开发一个以Firebase作为后端的Android应用。 到目前为止,它工作非常顺利,我喜欢它,但现在我遇到了一个主要的障碍。 该应用必须搜索特定位置周围的优惠,然后相应地填充ListView(或RecyclerView)。 我已经在我的Firebase结构中加入了Geofire,拥有一个主要的交易节点和一个具有相同键的 geofire 节点,Geoquery正在将它们恢复正常。

我的问题是,我从Firebase示例中抓取的FirebaseListAdapter没有单项添加方法,而是我需要的内容Geoquery将只返回一个密钥。 经过长时间的搜索,我还没能找到处理同一问题的代码示例,所以我想就如何以及哪种方法最有效的方式提出一些建议。实现这一点。

由于

P.S。:我的火力架结构:

{
  "deals" : {
    "-JikH6yjJ9TblE8_4fX4" : {
      "category" : "Food",
      "description" : "example description",
      "location" : "George St, Brisbane",
      "title" : "some title",
    }
  },
  "geofire" : {
    "-JikH6yjJ9TblE8_4fX4" : {
      ".priority" : "r7hgf2d639",
      "g" : "r7hgf2d639",
      "l" : [ -27.46268003, 153.03172851 ]
    }
  }
}

1 个答案:

答案 0 :(得分:2)

FirebaseListAdapter仅适用于您希望将所有子项从Firebase位置添加到列表中的简单情况。它旨在作为一个简单的帮助类。对于像这样的更复杂的示例,您需要编写自己的ListAdapter

收到GeoQuery的密钥输入事件后,您可以为deals节点中的实际值添加值监听器。然后,您可以使用这些值事件来填充和更新列表视图。

确保在键退出事件或处理列表视图时删除值侦听器。