@max_vr

Как получить доступ к картинке в ListView?

Имеется ListView, в адаптере указан layout с такой структурой:
35eee1308728498cbd631a2c2f10fa7f.bmp
Пытаюсь получить доступ к imageView конкретной строки:
LinearLayout temp = (LinearLayout) list.getAdapter().getView(position, null, list);
 ImageView img = (ImageView) temp.getChildAt(0);
 img.setImageResource(R.drawable.noava);

Компилируется без ошибок, при работе не вылетает, однако картинка в заветной строке все-равно не меняется. Что я делаю не так?
P.S. не судите строго, я новичок
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 2
@itdroid
Такой подход, как у Вас - неправильный.
За содержимое списка отвечает адаптер, и изменения этого содержимого из других мест приведет к неопределённому отображению элементов.
Вам надо в адаптере определить метод:

updateImage(int position, int imageResId);

В этом методе необходимо запоминать новую картинку для соответствующей позиции и вызывать метод notifyDatasetChanged() , чтобы обновить содержимое списка.
После этого, адаптер начнет обновление, и Вы сможете показать новую картинку, которую ранее сохранили.
По Вашему коду видно что Вы не разобрались с тем как работает ListView/RecyclerView, прочитайте какой-то туториал по этим компонентам и тогда Вам станет ясно в чем была проблема.
Ответ написан
Комментировать
abler98
@abler98
Software Engineer
<ImageView android:id="@+id/imageView"
        .../>

View view = list.getAdapter().getView(position, null, list);
ImageView imageView = view.findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.noava);

Только это нужно делать в самом адаптере.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы