У меня есть один простой адаптерPicasso + RecycleView вставить изображение в неверном зрения
public class ConversationListAdapter extends
RecyclerView.Adapter<Conversation.ViewHolder> {
private List<Conversation> items;
private Activity activity;
public ConversationListAdapter(Activity activity, List<Conversation> items) {
super();
this. items = items;
this.activity = activity;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
Conversation conversation = mItems.get(i);
viewHolder.name.setText(conversation.getName());
if (conversation.getUrl() != null) {
Picasso.with(activity.getApplicationContext()).load(conversation.getUrl())
.into(viewHolder.imageView);
}
}
and a basic
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {..}
}
В настоящее время в фрагменте, как и всегда:
mRecyclerView.setAdapter(new ConversationAdapter(getActivity(), mItems));
Теперь Im Calling мой REST API, чтобы получить данные и первый время, когда это работает, все, где это должно быть (скажем, в c есть только 2 элемента, а порядок - conv1 и conv2)
Но ... теперь, если я обновляюсь, например, и данные в Списке идут в другом порядке (conv2, а затем conv1) после того, как адаптер.notifyDataSetChanged(), оба из моего imageView в списке имеют одинаковые изображения ..! Но TextView однако имеет право текст
Это происходит только с точки зрения заполненного с Пикассо и не может понять, почему
Может кто-нибудь помочь мне в этом?
Я только что попробовал, и если я удалю нулевую проверку (я положил ее, потому что иначе picasso помещал пустое изображение), и вместо этого я использую .error (..). PlaceHolder (..), что неправильного поведения не произошло – Johny19
Вы определили пустой диалог «ПерепискаListAdapter.ViewHolder», но ваш класс адаптера напечатал для Conversation.ViewHolder. Что там? Что вы делаете в onCreateViewHolder? – DmitryBorodin
нормальный материал, findById и т. Д. – Johny19