當我向列表視圖添加新消息時,添加了我擁有的消息和新消息,因此它將兩次放置相同的信息。Firebase中的重複對象加載到ListView中
我想在火力地堡列表視圖加載最後一封郵件,我有如下功能爲創建():
firebase = new Firebase(FIREBASE_URL).child(FIREBASE_CHILD + "/" + sharedPreferences.getString("chatKey", null).toString() + "/room/");
firebase.child("messages").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot Snapshot) {
if (Snapshot.getValue() != null) {
Iterable<DataSnapshot> iterator = Snapshot.getChildren();
itemMessage itemData;
for(DataSnapshot value : iterator){
itemData = value.getValue(itemMessage.class);
mCDataAdatapter.add(itemData.getMessage().toString());
}
mConversation.setAdapter(mCDataAdatapter);
}
}
而對於增加新的消息:
sendMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(ChatActivity.this);
SharedPreferences.Editor editor = sharedPreferences.edit();
// editor.clear().commit();
if(sharedPreferences.getString("chatKey", null) != null && sharedPreferences.getString("chatKey", null).toString() != ""){
messageLevel = new Firebase(FIREBASE_URL+sharedPreferences
.getString("chatKey", null)
.toString()+"/room/")
.child("messages");
Map<String, Object> messageData = new HashMap<String, Object>();
messageData.put("message", message.getText().toString());
messageData.put("userTo", 1);
messageData.put("userFrom",2);
messageLevel
.push()
.setValue(messageData);
mCDataAdatapter.add(message.getText().toString());
mConversation.setAdapter(mCDataAdatapter);
message.setText("");
}
}
});
是啊!準備好了 –