如何将firebase数据库的child添加到android listview
我一直在寻找这个,但没有找到我要找的。 这是我在firebase的一张图片 我需要在listview中显示它,但也需要动态显示它。例如,如果有30个链接,它应该在listview中显示30个项目,如果Firebase中有50个链接,listview应该有50个项目 最好的方法是什么如何将firebase数据库的child添加到android listview,android,listview,firebase-realtime-database,Android,Listview,Firebase Realtime Database,我一直在寻找这个,但没有找到我要找的。 这是我在firebase的一张图片 我需要在listview中显示它,但也需要动态显示它。例如,如果有30个链接,它应该在listview中显示30个项目,如果Firebase中有50个链接,listview应该有50个项目 最好的方法是什么 谢谢我找到了解决办法 listview=(ListView)findViewById(R.id.listview); final ArrayAdapter<String> adapter=new
谢谢我找到了解决办法
listview=(ListView)findViewById(R.id.listview);
final ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,list);
listview.setAdapter(adapter);
dref=FirebaseDatabase.getInstance().getReference();
dref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
list.add(dataSnapshot.getValue(String.class));
adapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
list.remove(dataSnapshot.getValue(String.class));
adapter.notifyDataSetChanged();
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
listview=(listview)findViewById(R.id.listview);
最终的ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u下拉列表\u item\u 1line,列表);
setAdapter(适配器);
dref=FirebaseDatabase.getInstance().getReference();
dref.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
add(dataSnapshot.getValue(String.class));
adapter.notifyDataSetChanged();
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
ChildRemoved上的公共void(DataSnapshot DataSnapshot){
remove(dataSnapshot.getValue(String.class));
adapter.notifyDataSetChanged();
}
@凌驾
已移动ChildMoved上的公共void(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
这将在listview中显示子级的所有数据