Я реализовал RecyclerView, который заполняет некоторые записи
Это заполненные встречи и назначения имеют одобренный и не одобренный статус.
Я реализовал утвержденную кнопку, чтобы по щелчку обновляться утвержденный статус для этой встречи в базе данных, а также изменялись значок и текст этой конкретной отображаемой записи.
но по какой-то причине в onclick, когда я обновляю текст и значок, он не изменяется динамически, но запрос к базе данных работает, так как я вижу изменения в базе данных, и когда я перезагружаю весь набор данных, он показывает изменяется соответственно.
Вот код
@Override
public void onBindViewHolder(final AppointmentsHolder holder, final int position) {
final AppointmentObject appointment = appointmentList.get(position);
//binding the data with the viewholder views
holder.patient_name.setText(appointment.patient_name);
holder.app_date.setText(appointment.appointment_date);
if (appointment.descr.length() > 30){
holder.app_descr.setText(String.valueOf(appointment.descr.substring(0,30)));
}else {
holder.app_descr.setText(String.valueOf(appointment.descr));
}
if (appointment.approved_status.equals("0")){
holder.approved_status.setTextColor(Color.RED);
holder.approved_status.setText("Not Approved");
holder.app_pa_approve.setImageResource(R.mipmap.approveicon);
}else {
holder.app_pa_approve.setImageResource(R.mipmap.approvedicon);
holder.approved_status.setTextColor(Color.GREEN);
holder.approved_status.setText("Approved");
}
holder.app_pa_relative.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnClickListenr.clicked_On_appointment(appointment);
}
});
holder.app_pa_approve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.approved_status.setTextColor(Color.GREEN);
holder.approved_status.setText("Approved");
holder.app_pa_approve.setImageResource(R.mipmap.approvedicon);
notifyDataSetChanged();
mOnClickListenr.aprove_appointment(appointment, position);
}
});
}
Вот onBindViewHolder, где я пытаюсь динамически изменять данные по клику.
mOnclickListiner.aprove.appointment - это просто список, который я внедряю в упражнение для передачи данных в занятие
public interface OnClickListener{
public void clicked_On_appointment(AppointmentObject appointment);
public void aprove_appointment(AppointmentObject appointment, int position);
}
mOnClickListenr.aprove_appointment(appointment, position);
внутри OnClcick выполняется, поэтому я знаю, что setText и setImageResource также выполняются, но по какой-то причине изменения не отображаются в представлении.
Как видите, я правильно использую notifyDataSetChanged();
.
Что может быть причиной такого поведения?
Как вы можете видеть, даже когда я нажимаю на кнопку изображения, нет динамического изменения
только когда я перезагружаю arraylist, он показывает изменения, что означает, что изменения происходят в базе данных, и onclick выполняет