【问题标题】:Firebase Database populate child data into ListView using FirebaseUIFirebase 数据库使用 FirebaseUI 将子数据填充到 ListView
【发布时间】:2018-06-19 02:47:17
【问题描述】:

我想使用 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

再次感谢!

【问题讨论】:

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


    【解决方案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);
    

    【讨论】:

    • 谢谢!它正在工作,但我需要将 &lt;String&gt; 更改为 &lt;Personnel&gt; 才能使其正常工作。
    • 好,我忘了修改那些。我也在我的回答中更新了它们。
    • 我可以再问一个问题吗? FirebaseUI 是否支持使用 onItemClick 获取 firebase 数据库数据并将它们传递给另一个活动?或者我需要创建一种方法来自己获取数据?我目前使用this 传递数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2016-12-18
    相关资源
    最近更新 更多