Картинки в ListView при прокрутке сбиваются

Ответить
grem17
Сообщения: 85
Зарегистрирован: 16 сен 2014, 11:54

Картинки в ListView при прокрутке сбиваются

Сообщение grem17 » 18 дек 2014, 15:36

всем привет, впорос такой:

Есть ListView, есть SimpleAdapter с методом getView через который происходит отрисовка картинки в каждой строке этой ListView.
Создал метод для нажатия на строку и изменению в ней текущей картинки
ListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
}

если строк не много и они все умещаются в видимую область экрана, то проблем вообще ни каких нет, по клику - меняется картинка и все хорошо...но стоит добавить много данных и проскролить страницу - начинается хаос, измененная картинка может появиться гдето в конце списка, если проскролить вверх и снова вниз - то картинка или вообще исчезнет или сместится на другую позицию

проблема думаю в отрисовке ListView при скролинге, но как ее решить? как зафиксировать изображение на одной позиции...или запретить стирание уже отрисованного - хотя это наверное сильно будет грузить память телефона

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Картинки в ListView при прокрутке сбиваются

Сообщение Foenix » 18 дек 2014, 15:41

неправильно реализовано, почитай внимательно уроки.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Картинки в ListView при прокрутке сбиваются

Сообщение doter.ua » 18 дек 2014, 18:17

А как ты пикчу меняешь? нужно изменять item - элемент ,который создается из элементов массива, который используется при создании адаптера. что-то типа адаптер.гетИтем(позиция).картинка = новая картинка.
после чего адаптер.notifydatasetchanged()
P.S. это для кастомных адаптеров.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Ответить