Как обновлять данные элемента recyclerView в реальном времени?
У меня есть список. Список постоянно обновляется. В метод приходит имя из бд и элемент добавляется в список. Каким образом нужно изменить код, что бы вызвав метод update , можно было изменить значение имени в ячейке без информации о его позиции? Сейчас у меня изменяется имя только в позиции 0. Но у меня в списке может быть 100 ячеек. И например я хочу изменить значение ячейки в позиции 56. Но через несколько секунд это уже будет не позиция 56, а , скажем, 60. Я думаю, что мне нужно подписаться на изменения списка. Но т к я новичок, я не понимаю, как мне подписаться на эти изменения. т е например: в бд изменилось имя - получили эти изменения-поменяли в списке значение ячейки.Вот что у меня есть сейчас:
public class Contact {
private int image;
private String name;
private String number;
public Contact(int image, String name, String number) {
this.image = image;
this.name = name;
this.number = number;
//getter, setter
}
public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.ViewHolder> {
private LayoutInflater layoutInflater;
private List<Contact> contacts;
private Context context;
public ContactAdapter(Context context, List<Contact> contacts) {
this.contacts = contacts;
this.layoutInflater = LayoutInflater.from(context);
this.context = context;
}
@NonNull
@Override
public ContactAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = layoutInflater.inflate(R.layout.list_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ContactAdapter.ViewHolder holder, final int position) {
final Contact contact = contacts.get(position);
holder.imageView.setImageResource(contact.getImage());
holder.nameView.setText(contact.getName());
holder.numberView.setText(contact.getNumber());
}
});
}
@Override
public int getItemCount() {
return contacts.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
final ImageView imageView;
final TextView nameView, numberView;
ViewHolder(View view) {
super(view);
imageView = view.findViewById(R.id.image);
nameView = view.findViewById(R.id.name);
numberView = view.findViewById(R.id.number);
}
}
}
т е как мне подпиать list на изменение параметра name ?