我想使用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
有没有办法实现这项工作?谢谢!
备注
com.firebaseui:firebase-ui-database:1.0.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);