2017-04-19 109 views
0

enter image description here火力地堡顯示數據

我想告訴(網友:....),但我不知道路徑的用戶。如何在列表視圖中選擇用戶顯示。請看看我的代碼,並幫助我

public class ListUserRoom extends AppCompatActivity { 

    private ListView listView; 

    List<Member> members = new ArrayList<>(); 

    private DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 

    private String keyOfRoom = ""; 

    private String keyOfMember = ""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_list_user_room); 

     createListUser(); 

    } 

    private void createListUser() { 

     listView = (ListView)findViewById(R.id.listView); 
     listView.setAdapter(new ListUserRoom.ImageAdapter(this)); 

     Intent getData = getIntent(); 
     if(getData != null){ 
      keyOfRoom = getData.getExtras().getString("key" , ""); 
     } 
     getData = getIntent(); 
     if(getData != null){ 
      keyOfMember = getData.getExtras().getString("keymember" , ""); 
     } 
     mDatabase = FirebaseDatabase.getInstance().getReference() 
       .child("AllRoom").child(keyOfRoom) 
       .child("Member").child(keyOfMember) 
       .child("User"); 

     mDatabase.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       Set<String> set = new HashSet<String>(); 
       Iterator i = dataSnapshot.getChildren().iterator(); 
       dataSnapshot.getValue(); 


       while (i.hasNext()){ 
        DataSnapshot data = (DataSnapshot)i.next(); 
        Member member = data.getValue(Member.class); 
        member.setKey(data.getKey()); 
        members.add(member); 
       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
    } 

如何選擇表用戶:(所有)和Member.class其模型顯示LISTUSER(私人字符串鍵,用戶)設置,獲得密鑰的用戶

+0

你可以發佈你的Member.java類嗎?行! – wnieves19

+0

行!兄弟編輯完成謝謝你的幫助! @ wnieves19 – ThLez

回答

0

你在AllRoom表後缺少在數據庫中引用一個子鍵

mDatabase = FirebaseDatabase.getInstance().getReference() 
      .child("AllRoom") 
      .child(missingKey)//You need to add a key here to be able to access Member 
      .child("Member"); 

之後你解決這個問題,這裏是我有工作已經適應了你的問題代碼

 mDatabase.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      for (DataSnapshot snapshot : dataSnapshot.getChildren()){ 
       Member member = data.getValue(Member.class); 
       member.setKey(data.getKey()); 
       Members.add(member); 
      } 

     } 

希望這會有所幫助

+0

這不行。你能看到問題並再次幫助我嗎?謝謝你的幫助 – ThLez