Firebase数据库使用FirebaseUI将子数据填充到ListView中

时间:2018-06-19 02:47:18

标签: android firebase listview firebase-realtime-database firebaseui

我想使用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位于Fragment
  • 我的FirebaseUI数据库是版本1.0.1 com.firebaseui:firebase-ui-database:1.0.1

再次感谢!

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);