如何在列表视图中显示Firebase父母

问题描述:

前2个键没有孩子,但其他人拥有孩子。当只有一个父项时,我可以显示子元素,并且我可以使用数据对象模型显示管理员/用户详细信息,但是如何在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) { 

     } 
    }); 

如果只有一个孩子学前班则显示否则就不会显示值。

+0

getChildren()是否适用于datasnapshot?我没有得到如何去做。 –

我已经用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) { 

     } 
    }); 

要在列表视图中显示文本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) { 

     } 
    });