如何在列表视图中显示Firebase父母
问题描述:
前2个键没有孩子,但其他人拥有孩子。当只有一个父项时,我可以显示子元素,并且我可以使用数据对象模型显示管理员/用户详细信息,但是如何在Listview中显示父元素(Bright Kid Test & others)?如何在列表视图中显示Firebase父母
这是火力地堡数据库的图像:
代码:
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) {
}
});
如果只有一个孩子学前班则显示否则就不会显示值。
答
我已经用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) {
}
});
getChildren()是否适用于datasnapshot?我没有得到如何去做。 –