如何在Listview中显示Firebase父项

时间:2017-08-28 04:11:42

标签: android listview firebase firebase-realtime-database

前两个键没有孩子,但其他人有。当只有一个父级时,我能够显示子元素,我可以使用数据对象模型显示管理员/用户详细信息但是如何在Listview中显示父元素(Bright Kid Test& others)?

这是Firebase数据库的图片:

This is an image of Firebase Database

代码:

   listView = (ListView)findViewById(R.id.preschool_list);
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,list);
    listView.setAdapter(adapter);
    databaseReference = FirebaseDatabase.getInstance().getReference("Preschools");

    databaseReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String value = dataSnapshot.getValue(String.class);
            list.add(value);
            adapter.notifyDataSetChanged();
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

如果幼儿园只有一个孩子,那么就显示出来,否则没有显示任何值。

2 个答案:

答案 0 :(得分:0)

我得到了datasnapshot.getChildren()的答案。

        databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot dsp : dataSnapshot.getChildren())
            {
                list.add(String.valueOf(dsp.getKey()));
                adapter.notifyDataSetChanged();
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

答案 1 :(得分:0)

你想在列表视图中显示文字Bright Kid LL,Bright Kid Mont,Bright Kid Test,不是吗?您可以通过getKey()

获取它们
databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot recipeSnapshot : dataSnapshot.getChildren()) {
                String key = recipeSnapshot.getKey();
                list.add(key);
            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });