Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将firebase数据库的child添加到android listview_Android_Listview_Firebase Realtime Database - Fatal编程技术网

如何将firebase数据库的child添加到android listview

如何将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

我一直在寻找这个,但没有找到我要找的。

这是我在firebase的一张图片

我需要在listview中显示它,但也需要动态显示它。例如,如果有30个链接,它应该在listview中显示30个项目,如果Firebase中有50个链接,listview应该有50个项目

最好的方法是什么


谢谢

我找到了解决办法

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中显示子级的所有数据