как реализовать notifyDataSetChanged у другом DataAdapter
У меня есть активность и два дата адаптера, которые отвечают за разные действия. Мне нужно реализовать notifyDataSetChanged одного адаптера в другом. Вот код для лучшего понимания:
public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> {
DataAdapterForChat adapter = new DataAdapterForChat();
ArrayList<String> chat_msgs = new ArrayList<>();
ArrayList<String> time = new ArrayList<>();
ArrayList<String> whoSent = new ArrayList<>();
public void onBindViewHolder(DataAdapter.ViewHolder holder, int position) {
holder.codes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
editor.putString("Code", holder.codes.getText().toString());
editor.putString(("chatName"), snapshot.child("chats").child("NameOfChats")
.child(holder.codes.getText().toString()).getValue(String.class));
editor.apply();
chat_code = holder.codes.getText().toString();
chat_msgs.clear();
time.clear();
whoSent.clear();
for(DataSnapshot data: snapshot.child("chats").child("List_of_chats").child(chat_code).getChildren()) {
chat_msgs.add(data.child("textMessage").getValue(String.class));
time.add(data.child("time").getValue(String.class));
whoSent.add(data.child("userName").getValue(String.class));
}
adapter.setter(chat_msgs, time, whoSent);
adapter.notifyDataSetChanged();
//тоже не работает
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
Log.e(TAG, holder.codes.getText() + "");
}
});
}
public class DataAdapterForChat extends RecyclerView.Adapter<com.alphabetas.agroup.ViewHolderForChat>{
LayoutInflater inflater;
ArrayList<String> messages = new ArrayList<>();
ArrayList<String> time = new ArrayList<>();
ArrayList<String> whoSent = new ArrayList<>();
String login, chat_code;
public DataAdapterForChat(){
}
public DataAdapterForChat(Context context, ArrayList<String> messages2, ArrayList<String> time
,ArrayList<String> whoSent, String login) {
this.inflater = LayoutInflater.from(context);
this.messages = messages2;
this.time = time;
this.whoSent = whoSent;
this.login = login;
}
public void setter(ArrayList<String> message, ArrayList<String> time, ArrayList<String> whoSent){
this.messages = message;
this.time = time;
this.whoSent = whoSent;
this.notifyDataSetChanged();
// не обновляет
}
}
Ошибок никаких нету, дебаг показал, что данные передаются, из-за notifyDataSetChanged не работает. Спасибо.