Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
在android中列出儿童_Android_Listview_Firebase_Firebase Realtime Database - Fatal编程技术网

在android中列出儿童

在android中列出儿童,android,listview,firebase,firebase-realtime-database,Android,Listview,Firebase,Firebase Realtime Database,我是Android编程新手。我想列出Android中Firebase的所有子列表 我写了这段代码。但是当我启动应用程序时,listview返回null 我做错了什么 public class haber_goruntule extends AppCompatActivity { private ListView liste; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav

我是Android编程新手。我想列出Android中Firebase的所有子列表

我写了这段代码。但是当我启动应用程序时,listview返回null

我做错了什么

public class haber_goruntule extends AppCompatActivity {
private ListView liste;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_haber_goruntule);
    final List<connector_haber> mesajlar=new ArrayList<connector_haber>();

    liste= (ListView) findViewById(R.id.list);
    FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
    DatabaseReference ref=firebaseDatabase.getReference();

    ref.child("haberler").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Iterable<DataSnapshot> children=dataSnapshot.getChildren();
            for(DataSnapshot child : children){

             connector_haber haber=child.getValue(connector_haber.class);
                mesajlar.add(haber);
            }


        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    final ArrayAdapter<connector_haber> arrayAdapter=new ArrayAdapter<connector_haber>(this,android.R.layout.simple_list_item_1,mesajlar);
    liste.setAdapter(arrayAdapter);
  }
 }
公共类haber_goruntule扩展了AppCompative活动{
私有列表视图列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u haber\u goruntule);
最终列表mesajlar=newarraylist();
liste=(ListView)findViewById(R.id.list);
FirebaseDatabase=FirebaseDatabase.getInstance();
DatabaseReference ref=firebaseDatabase.getReference();
ref.child(“haberler”).addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable children=dataSnapshot.getChildren();
for(DataSnapshot子对象:子对象){
connector\u haber-haber=child.getValue(connector\u haber.class);
加上(哈伯);
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
final ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple_list_item_1,mesajlar);
liste.setAdapter(arrayAdapter);
}
}

数据从Firebase异步加载。当它返回时,您正在将其添加到适配器中,但安卓不再意识到这一点。要使其了解情况,请在添加数据后调用
notifyDataSetChanged()

final ArrayAdapter<connector_haber> arrayAdapter=new ArrayAdapter<connector_haber>(this,android.R.layout.simple_list_item_1,mesajlar);
liste.setAdapter(arrayAdapter);
ref.child("haberler").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Iterable<DataSnapshot> children=dataSnapshot.getChildren();
        for(DataSnapshot child : children){

            connector_haber haber=child.getValue(connector_haber.class);
            mesajlar.add(haber);
        }
        adapter.notifyDataSetChanged(); // tell the adapter to update the view

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // don't ignore this error
    }
});
final ArrayAdapter ArrayAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,mesajlar);
liste.setAdapter(arrayAdapter);
ref.child(“haberler”).addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable children=dataSnapshot.getChildren();
for(DataSnapshot子对象:子对象){
connector\u haber-haber=child.getValue(connector\u haber.class);
加上(哈伯);
}
adapter.notifyDataSetChanged();//告诉适配器更新视图
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
抛出databaseError.toException();//不要忽略此错误
}
});

数据从Firebase异步加载。当它返回时,您正在将其添加到适配器中,但安卓不再意识到这一点。要使其了解情况,请在添加数据后调用
notifyDataSetChanged()

final ArrayAdapter<connector_haber> arrayAdapter=new ArrayAdapter<connector_haber>(this,android.R.layout.simple_list_item_1,mesajlar);
liste.setAdapter(arrayAdapter);
ref.child("haberler").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Iterable<DataSnapshot> children=dataSnapshot.getChildren();
        for(DataSnapshot child : children){

            connector_haber haber=child.getValue(connector_haber.class);
            mesajlar.add(haber);
        }
        adapter.notifyDataSetChanged(); // tell the adapter to update the view

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // don't ignore this error
    }
});
final ArrayAdapter ArrayAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,mesajlar);
liste.setAdapter(arrayAdapter);
ref.child(“haberler”).addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable children=dataSnapshot.getChildren();
for(DataSnapshot子对象:子对象){
connector\u haber-haber=child.getValue(connector\u haber.class);
加上(哈伯);
}
adapter.notifyDataSetChanged();//告诉适配器更新视图
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
抛出databaseError.toException();//不要忽略此错误
}
});

好吧。。有一个开源库用于使用firebase实现UI。试试这个吧。。有一个开源库用于使用firebase实现UI。试试这个

试试这个:

   ref.child("haberler").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Iterable<DataSnapshot> children=dataSnapshot.getChildren();
        for(DataSnapshot child : children){

            connector_haber haber=child.getValue(connector_haber.class);
            mesajlar.add(haber);
        }
       final ArrayAdapter<connector_haber> arrayAdapter=new ArrayAdapter<connector_haber>(this,android.R.layout.simple_list_item_1,mesajlar);
       liste.setAdapter(arrayAdapter); 

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // don't ignore this error
    }
});
ref.child(“haberler”).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable children=dataSnapshot.getChildren();
for(DataSnapshot子对象:子对象){
connector\u haber-haber=child.getValue(connector\u haber.class);
加上(哈伯);
}
final ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple_list_item_1,mesajlar);
liste.setAdapter(arrayAdapter);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
抛出databaseError.toException();//不要忽略此错误
}
});
试试这个:

   ref.child("haberler").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Iterable<DataSnapshot> children=dataSnapshot.getChildren();
        for(DataSnapshot child : children){

            connector_haber haber=child.getValue(connector_haber.class);
            mesajlar.add(haber);
        }
       final ArrayAdapter<connector_haber> arrayAdapter=new ArrayAdapter<connector_haber>(this,android.R.layout.simple_list_item_1,mesajlar);
       liste.setAdapter(arrayAdapter); 

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // don't ignore this error
    }
});
ref.child(“haberler”).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Iterable children=dataSnapshot.getChildren();
for(DataSnapshot子对象:子对象){
connector\u haber-haber=child.getValue(connector\u haber.class);
加上(哈伯);
}
final ArrayAdapter ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple_list_item_1,mesajlar);
liste.setAdapter(arrayAdapter);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
抛出databaseError.toException();//不要忽略此错误
}
});

Hello@Kevin。请确保使用调试模式或日志语句在onDataChange中实际接收数据。另外,请添加
arrayAdapter.notifyDataSetChanged()
调用作为onDataChange Callback中的最后一行。您也可以使用子侦听器,这样您不需要迭代器,但每次添加数据时都必须将数据添加到适配器Hello@Kevin。请确保使用调试模式或日志语句在onDataChange中实际接收数据。另外,请添加
arrayAdapter.notifyDataSetChanged()
调用作为onDataChange Callback中的最后一行。您也可以使用子侦听器,这样您就不需要迭代器,但每次添加时都必须将数据添加到适配器中Hanks Frank I added adapter.DataSnotifyetChanged()。但它仍然没有显示任何内容。我的数据库“haberler”有子项,子项有自己的键。你认为我在列表视图中列出数据库的方法正确吗?从这里我很难看到。但是您可以在调试器中单步执行
onDataChange()
方法,查看
haber
是否具有您期望的值