Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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 Firebase中的所有子项检索到RecyclerView中_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

将Android Firebase中的所有子项检索到RecyclerView中

将Android Firebase中的所有子项检索到RecyclerView中,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,有人能帮我处理这段代码吗?问题是我只收到数据库中的最后一项 FirebaseDatabase.getInstance().setPersistenceEnabled(true); DatabaseReference database = FirebaseDatabase.getInstance().getReference(); database.child("Ministries").addValueEventListener(new ValueEventListene

有人能帮我处理这段代码吗?问题是我只收到数据库中的最后一项

    FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    DatabaseReference database = FirebaseDatabase.getInstance().getReference();
    database.child("Ministries").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot child : dataSnapshot.getChildren()) {

                String min = child.child("Ministry").getValue().toString();
                min_address = child.child("Address").getValue().toString();
                min_tel = child.child("Tel").getValue().toString();
                min_fax = child.child("Fax").getValue().toString();
                min_email = child.child("e_mail").getValue().toString();
                min_website = child.child("website").getValue().toString();

                final RecyclerView rv = (RecyclerView) findViewById(id.recycler_view);
                rv.setHasFixedSize(true);
                LinearLayoutManager llm = new LinearLayoutManager(getApplicationContext());
                rv.setLayoutManager(llm);
                List<Ministries> m = new ArrayList<>();
                m.add(new Ministries(min, min_address, min_tel, min_fax, min_email, min_website, R.drawable.ic_ministries));
                RVAdapter adapter = new RVAdapter(m);
                rv.setAdapter(adapter);

            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {}
    });
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
DatabaseReference database=FirebaseDatabase.getInstance().getReference();
database.child(“部委”).addValueEventListener(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot子项:DataSnapshot.getChildren()){
字符串min=child.child(“部”).getValue().toString();
min_address=child.child(“地址”).getValue().toString();
min_tel=child.child(“tel”).getValue().toString();
min_fax=child.child(“fax”).getValue().toString();
min_email=child.child(“电子邮件”).getValue().toString();
min_website=child.child(“网站”).getValue().toString();
最终RecyclerView rv=(RecyclerView)findViewById(id.recycler\u视图);
rv.setHasFixedSize(真);
LinearLayoutManager llm=新的LinearLayoutManager(getApplicationContext());
rv.setLayoutManager(llm);
列表m=新的ArrayList();
m、 添加(新部委(min、min_地址、min_电话、min_传真、min_电子邮件、min_网站、R.drawable.ic_部委));
RVAdapter适配器=新的RVAdapter(m);
rv.设置适配器(适配器);
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
});

您需要将列表创建和
RecyclerView
逻辑移到for循环之外

例如:

    public void onDataChange(DataSnapshot dataSnapshot) {

        List<Ministries> m = new ArrayList<>();

        for(DataSnapshot child : dataSnapshot.getChildren()) {

            String min = child.child("Ministry").getValue().toString();
            min_address = child.child("Address").getValue().toString();
            min_tel = child.child("Tel").getValue().toString();
            min_fax = child.child("Fax").getValue().toString();
            min_email = child.child("e_mail").getValue().toString();
            min_website = child.child("website").getValue().toString();

            m.add(new Ministries(min, min_address, min_tel, min_fax, min_email, min_website, R.drawable.ic_ministries));

        } 

        final RecyclerView rv = (RecyclerView) findViewById(id.recycler_view);
        rv.setHasFixedSize(true);
        LinearLayoutManager llm = new LinearLayoutManager(getApplicationContext());
        rv.setLayoutManager(llm);

        RVAdapter adapter = new RVAdapter(m);
        rv.setAdapter(adapter);

    } 
public void onDataChange(DataSnapshot DataSnapshot){
列表m=新的ArrayList();
对于(DataSnapshot子项:DataSnapshot.getChildren()){
字符串min=child.child(“部”).getValue().toString();
min_address=child.child(“地址”).getValue().toString();
min_tel=child.child(“tel”).getValue().toString();
min_fax=child.child(“fax”).getValue().toString();
min_email=child.child(“电子邮件”).getValue().toString();
min_website=child.child(“网站”).getValue().toString();
m、 添加(新部委(min、min_地址、min_电话、min_传真、min_电子邮件、min_网站、R.drawable.ic_部委));
} 
最终RecyclerView rv=(RecyclerView)findViewById(id.recycler\u视图);
rv.setHasFixedSize(真);
LinearLayoutManager llm=新的LinearLayoutManager(getApplicationContext());
rv.setLayoutManager(llm);
RVAdapter适配器=新的RVAdapter(m);
rv.设置适配器(适配器);
} 

我没有使用ValueEventListeners,但是ChildEventListener在这里可能更合适。如何为循环中的每个信息实现clicklistener。。。示例“min_tel”按钮指向确切的电话号码。。。我当前的尝试也只提供Firebase数据库中的最后一个数据