Как исправить: «notifyDataSetChanged () не обновляет ImageView в адаптере RecyclerView» - PullRequest
0 голосов
/ 12 июня 2019

Предположим, у меня есть адаптер recyclerView, который используется для заполнения представлений, включая imageView. Когда я впервые загружаю адаптер, то элементы представления переработчика отображаются правильно. Но если я обновлю imageView и ресурс textview в источнике данных адаптера и вызову метод notifyDataSetChanged (), то обновляется только textview, а не imageView. Кто-нибудь может мне с этим помочь ? Заранее спасибо.

Например - это первый раз, когда я добавляю все элементы в пустой массив массивов внутри фрагмента и обновляю их методом notifyDataSetChanged (). До сих пор все в порядке, и изображения корректно загружаются в адаптер.

Ниже приведен метод getMethod ()

                    if(remindersListResponse.code == 200)
                    {
                        if(remindersListResponse.data != null)
                        {
                            photoContactList.clear();

                           photoContactList.addAll(remindersListResponse.data);
                            photoContactsAdapter.notifyDataSetChanged();
                        }

                    }

Теперь, если я снова вызываю getMethod при нажатии какой-либо кнопки во фрагменте и использую метод notifyDataSetChanged (). Тогда в элементах адаптера обновляется только текст, но не изображения, вместо этого они исчезают.

Это мой адаптер для метода onBindViewHolder (...)

@Override
    public void onBindViewHolder(@NonNull final ViewHolder viewHolder, int i) {

        final PhotoContactsResponse.Result photoContactDetail = photoContactList.get(i);

        viewHolder.photoContactName.setText(photoContactDetail.name);

        if(photoContactDetail.image!=null && !photoContactDetail.image.isEmpty()) {
            viewHolder.addPhotoText.setVisibility(View.GONE);
            Picasso.with(context)
                    .load(Constants.WEB_SERVICE_BASE_URL_FOR_IMAGE+photoContactDetail.image)
                    .networkPolicy(NetworkPolicy.NO_CACHE)
                    .memoryPolicy(MemoryPolicy.NO_CACHE)
                    .into(viewHolder.photoContactImage);
        }
        else
        {
            viewHolder.addPhotoText.setVisibility(View.VISIBLE);
            viewHolder.photoContactImage.setVisibility(View.GONE);
        }
}

Это мой модельный класс

public static class Result{
        public int id;
        public String name;
        public String number;
        public String image;
        public int index;
    }
...