ISo ich habe Gruppen-Chat in meiner App. Ich habe "Räume" und Knopf beitreten "Raum", wenn Benutzer klick Join-Taste alle alten Nachrichten auf dem Bildschirm erscheint, aber ich möchte nur neue anzeigen, ich verwende Firebase-Liste Adapter zum Anzeigen ... alles funktioniert gut, aber nur don Ich weiß nicht, wie man eine leere Liste und nur neue Nachrichten anzeigt, ty.Android-Gruppe Chat-Anzeige nur leere Listview ohne alte Nachrichten nur neue Nachrichten, wenn Benutzer beitreten Gruppe
btnJoin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference db = FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID);
db.child(user.getUid()).setValue("");
}
});
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseReference db = FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID).child("Messages").push();
db.setValue(new ChatMessage(ePlain.getText().toString(),user.getDisplayName()));
ePlain.setText("");
ePlain.requestFocus();
}
});
private void displayChat() {
btnSend.setVisibility(View.VISIBLE);
eventChat.setVisibility(View.VISIBLE);
FirebaseListAdapter<ChatMessage> adapter = new FirebaseListAdapter<ChatMessage>(EventDetails.this,ChatMessage.class,R.layout.one_chat_list,FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID).child("Messages")) {
@Override
protected void populateView(View v, ChatMessage model, int position) {
TextView messageTextm,messageUser,messageTime;
messageTextm = (TextView) v.findViewById(R.id.chatMessage);
messageUser = (TextView)v.findViewById(R.id.chatUserName);
messageTime = (TextView)v.findViewById(R.id.message_time);
messageTextm.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm)", model.getMessageTime()));
}
};
eventChat.setAdapter(adapter);
}
DatabaseReference check = FirebaseDatabase.getInstance().getReference("EventsUsers").child(uniqEventID);
check.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(user.getUid())){
displayChat();
}
}
Also, wenn Benutzer klickt beitreten Schaltfläche Listenansicht mit Nachrichten angezeigt alle alten Nachrichten, bevor er kam ... und sorry für keinen Code hochzuladen Ich bin neu hier, mir sagen, wenn Sie etwas anderes von meinem Code benötigen Das ist meine Datenbankstruktur https://ibb.co/d47D9v
Willkommen bei Stack-Überlauf kommen. Wenn Sie eine Frage stellen, bitten wir Sie, Ihren Code zu veröffentlichen und was Sie gegebenenfalls versucht haben. Dadurch erhalten Sie die beste Hilfe. Sie können diesen Artikel hilfreich finden: https: //stackoverflow.com/help/how-to-ask – JCooke