[英]How to get Data from a Firebase Database and populate them in a ListView
{
"chat_room" : {
"-Kp_ldAz7_g3W4riNkJY" : {
"message" : "Hello!",
"uname" : "Praveen"
}
}
}
這是我的Firebase DB jSON文件,用於一條聊天消息,我嘗試了以下創建的名為“ appendChat()”的方法來在ListView上填充數據庫。
但由於某種原因,ListView只顯示最后發送的消息
private void appendChat(DataSnapshot dataSnapshot) {
final ArrayList<String> chatListArr = new ArrayList<String>();
Iterator i = dataSnapshot.getChildren().iterator();
while (i.hasNext()) {
chatListArr.add((String) ((DataSnapshot) i.next()).getValue());
chatListArr.add((String) ((DataSnapshot) i.next()).getValue());
}
ArrayAdapter arrayAdapter = new ArrayAdapter(getActivity().getApplicationContext(), android.R.layout.simple_list_item_2,android.R.id.text1, chatListArr);
chatList.setAdapter(arrayAdapter);
}
我的ListView有一個用於用戶名的字符串和一個用於消息的子字符串,我如何更改代碼以檢索數據庫值並在ListView中填充為
username:
message
問題在於,每次接收到消息時,您都在創建一個全新的ArrayAdapter
。 這將有效刪除所有先前的消息。 我建議您在onCreate()
創建一次ArrayAdapter
。 然后,您可以將數據添加到ArrayList
並在適配器上調用notifyDataSetChanged()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.