Я веду чат, когда я вхожу в приложение, сообщения загружаются правильно, но когда я прокручиваю и возвращаюсь к тому же сообщению, сообщения типа аудио и изображения исчезают, только текст преобладает. Есть идеи, почему? Это код, который я не понимаю, почему прокрутка загруженных изображений исчезает, чтобы загрузить их в изображение из firebase, я использую Glide. Также при прокрутке загружается изображение профиля человека, который разместил сообщение выше, когда оно не от пользователя, я повторяю, что это только для прокрутки, они загружаются отлично.
введите описание изображения здесь
Код адаптера
public class AdapterRVMensajes extends RecyclerView.Adapter<AdapterRVMensajes.MensajeHolder> {
private List<MensajePojo> lstMensajes;
private Context c;
private MediaPlayer mediaPlayer;
public AdapterRVMensajes(List<MensajePojo> lstMensajes,Context c) {
this.lstMensajes = lstMensajes;
this.c = c;
}
@NonNull
@Override
public MensajeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View myView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_message,parent,false);
return new MensajeHolder(myView);
}
@Override
public void onBindViewHolder(@NonNull MensajeHolder holder, final int position) {
if(!lstMensajes.get(position).getFoto_perfil().equals("nada")){
Glide.with(c).load(lstMensajes.get(position).getFoto_perfil()).into(holder.imgPerfil);
}
if(lstMensajes.get(position).getTipo()==0){
holder.txtvname.setText(lstMensajes.get(position).getNombre());
holder.txtvmessage.setText(lstMensajes.get(position).getMensaje());
holder.txtvdate.setText(""+lstMensajes.get(position).getFecha());
holder.imgEnviado.setVisibility(View.INVISIBLE);
holder.imgBtAudio.setVisibility(View.INVISIBLE);
}
if(lstMensajes.get(position).getTipo()==1){
holder.txtvmessage.setVisibility(View.INVISIBLE);
holder.txtvname.setText(lstMensajes.get(position).getNombre());
holder.txtvdate.setText(""+lstMensajes.get(position).getFecha());
holder.imgBtAudio.setVisibility(View.INVISIBLE);
Glide.with(c).load(lstMensajes.get(position).getMensaje()).into(holder.imgEnviado);
}
if(lstMensajes.get(position).getTipo()==2){
holder.txtvmessage.setVisibility(View.INVISIBLE);
holder.imgEnviado.setVisibility(View.INVISIBLE);
holder.txtvname.setText(lstMensajes.get(position).getNombre());
holder.txtvdate.setText(""+lstMensajes.get(position).getFecha());
holder.imgBtAudio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
mediaPlayer = null;
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(lstMensajes.get(position).getMensaje());
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
@Override
public int getItemCount() {
return lstMensajes.size();
}
class MensajeHolder extends RecyclerView.ViewHolder{
private TextView txtvname,txtvmessage,txtvdate;
private ImageView imgEnviado, imgPerfil;
private ImageButton imgBtAudio;
public MensajeHolder(@NonNull View itemView) {
super(itemView);
imgPerfil = (ImageView) itemView.findViewById(R.id.imageViewMensajecard);
txtvname = (TextView) itemView.findViewById(R.id.textViewName);
txtvmessage = (TextView) itemView.findViewById(R.id.textViewMessage);
txtvdate = (TextView) itemView.findViewById(R.id.textViewDate);
imgEnviado = (ImageView) itemView.findViewById(R.id.fotoEnviada);
imgBtAudio = (ImageButton) itemView.findViewById(R.id.imageButtonOirAudio);
}
}
}