android - Firebase 数据库使用 FirebaseUI 将子数据填充到 ListView
问题描述
我想使用 FirebaseUI 将 Firebase 实时数据库中的子数据填充到 ListView 中。
我的数据库结构是这样的。
- Personnel
- 00
- Name: "Wallace"
- DOB: "11/21/87"
- 01
- Name: "Carl"
- DOB: "05/14/90"
- 02
- Name: "Johnson"
- DOB: "01/17/89"
我目前使用它来将数据填充到 ListView
mListView = (ListView) rootView.findViewById(R.id.listview1);
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("https://my-project-here.firebaseio.com/personnel");
FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(getActivity(),String.class,android.R.layout.simple_list_item_1,databaseReference) {
@Override
protected void populateView(View v, String model, int position) {
TextView textView = (TextView) v.findViewById(android.R.id.text1);
textView.setText(model);
}
};
mListView.setAdapter(firebaseListAdapter);
列表显示为:(是的,这很好,但不是我的格式)
00
----
01
----
02
我希望他们像这样显示每个数据的第一个(或特定的)子项:
Wallace
---------
Carl
---------
Johnson
有什么方法可以实现吗?谢谢!
笔记
- 此 ListView 在片段中
- 我的 FirebaseUI 数据库是 1.0.1 版
com.firebaseui:firebase-ui-database:1.0.1
再次感谢!
解决方案
创建一个小型 Java 类来代表您的用户:
public class Personnel {
public String Name;
public String DOB;
}
然后将其连接到代码中的适配器:
FirebaseListAdapter<Personnel> firebaseListAdapter = new FirebaseListAdapter<Personnel>(getActivity(),Personnel.class,android.R.layout.simple_list_item_1,databaseReference) {
@Override
protected void populateView(View v, Personnel model, int position) {
TextView textView = (TextView) v.findViewById(android.R.id.text1);
textView.setText(model.Name);
}
};
mListView.setAdapter(firebaseListAdapter);
推荐阅读
- javascript - 如何在 lightblue flexbox 中居中文本?
- ruby-on-rails - 通过静态 IP 连接到 heroku 中的 Oracle 数据库时出现问题
- elasticsearch - kibana 没有按时间分组
- excel-formula - 如何根据两个单元格的内容开发公式
- java - Scala - 如何将集合格式化为字符串?
- arangodb - 如何确定文档大小和/或强制执行大小限制?
- reactjs - 试图在球体上显示图像
- c++ - 如何删除在 C++ 中使用 setw 时创建的额外空间?
- c - 带有 LIS2DE12 加速度计的 SPI
- node.js - NestJS UnhandledPromiseRejectionWarning by Promise