2017-06-21 35 views
0

誰かがこのコードを手伝ってくれますか?問題は私のデータベースから最後のアイテムしか受け取っていないことです。Android Firebaseのすべての子供をRecyclerViewに取得

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) {} 
    }); 
+0

私はValueEventListenersを使用していないが、ChildEventListenerは、ここでより適切かもしれません。 –

答えて

1

リスト作成と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); 

    } 
+0

あなたは人生の節約になりました...これは –

+0

ループ内で入ってくるすべての情報に対してクリックリスナーを実装する方法...正確な電話番号を指す "min_tel"ボタン現在の試みでもFirebaseデータベース内の最後のデータが得られます –

関連する問題