3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
||||||
1 | ||||||
Изменить цвет у item-a в listView11.10.2016, 08:12. Показов 9791. Ответов 15
Метки нет (Все метки)
Привет, вопрос такой.
Задача такая: Допустим у меня есть элементы listview разноцветные: (мне нужно при нажатие что бы он стал белым(элемент), и когда нажму на него еще раз принял свой цвет обратно.) 1. То есть прям перекрасить элемент в белый цвет. (В чем проблема : я делал так :
Но когда например нажимаю на другие элементы(не вернув цвет первому), начинает путаница происходить, цвета начинаю мешаться. Есть какие-нибуть варианты?
0
|
11.10.2016, 08:12 | |
Ответы с готовыми решениями:
15
Цвет item в listview Как изменить цвет пункта ListView при нажатии на него и сохранять его цвет при проматывании списка? Изменить цвет текста в адаптере ListView ListView: передача данных в item |
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
|
|
11.10.2016, 09:56 | 2 |
Добавь поле в элемент массива(или коллекции), которую отображаешь в листе, хранящее значение цвета элемента. Или boolean храни - выделен элемент/не выделен.
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
||||||||||||||||
11.10.2016, 09:57 [ТС] | 3 | |||||||||||||||
Mikalai, Даже вот так попробовал,
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.10.2016, 10:19 | 4 |
TonyBicbaev, ничем хорошим игра с цветами не из адаптера не кончится - если вы начнете скролить лист у вас все цвета перемешает так как адаптер имеет свое мнение по поводу того как их красить. красьте их через установления некого поля в массиве данных отображаемых в лист - саму окраску реализуйте в адаптере
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
||||||
11.10.2016, 10:28 [ТС] | 5 | |||||
vxg, я понимаю, я так и делал вот сообщение пред вами это все с адаптера,
задаю
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.10.2016, 11:45 | 6 |
TonyBicbaev, адаптера в вашем коде нет
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
|
11.10.2016, 11:57 [ТС] | 7 |
vxg,
Добавлено через 3 минуты код самого адаптера большой, так как содержит около 15 элементов.
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.10.2016, 12:16 | 8 |
TonyBicbaev, это не адаптер, это холдер элемента. просто может быть такая ситуация. есть адаптер. он генерирует или переиспользует view назначая тексты и цвета в соответствии с данными отображаемыми в list. этот же адаптер при генерации view заполняет холдер. по идее холдер не должен содержать ничего кроме ссылок на содержимое элемента для быстрого доступа к ним. за само содержимое и цвет отвечает не холдер, а адаптер. вы хватаете холдер, выковыриваете из него ссылки на содержимое и манипулируете с ним не затрагивая отображаемые в list данные. если вдруг адаптер проснется и переиспользует view над которой вы так поработали он может назначить содержимому другой текст или цвет или еще лучше - перемешать их с тем что есть (если вы то так делали то так)
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
|||||||||||
11.10.2016, 12:25 [ТС] | 9 | ||||||||||
окей вот что возвращает адаптер
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
||||||
11.10.2016, 12:38 | 10 | |||||
TonyBicbaev, какой то у вас адаптер не адаптер...
вот для сравнения
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
|||||||||||
11.10.2016, 12:55 [ТС] | 11 | ||||||||||
vxg, окей щас будет весь)
vxg, продолжение
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
|
11.10.2016, 12:57 [ТС] | 12 |
сейчас
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
||||||
11.10.2016, 12:58 [ТС] | 13 | |||||
vxg, продолжение, говорил же большой
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
11.10.2016, 13:31 | 14 |
TonyBicbaev, ваш адаптер не переиспользует view, но не это приводит к тому эффекту что вы наблюдаете - в адаптере как я понял тоже могут быть назначены цвета и вот вы назначаете их за пределами адаптера еще раз... скролите список - адаптер прибивает старое view и воссоздает новое окрашенное по законам данных
0
|
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 133
|
|
12.10.2016, 04:36 [ТС] | 15 |
vxg, да я понимаю что тут все норм. Но мне надо динамически по клику менять цвет(и при повторном нажатие вернуть прошлый). Не просто нажал, а прям поменять.
Получилось вчера сделать добавив onClickItemListener как минимум 6 условий.(может это правильно, а можете и нет) Просто хотел найти правильно решение.
0
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
12.10.2016, 06:06 | 16 |
TonyBicbaev, правильное решение написано выше - при клике меняйте статус по которому окрашивается элемент и одновременно меняйте цвет как вы делаете либо уведомляйте адаптер об изменении данных - тогда и вы и адаптер будете согласованы по цветам
0
|
12.10.2016, 06:06 | |
12.10.2016, 06:06 | |
Помогаю со студенческими работами здесь
16
EditText в одном из Item ListView ListView. Задать высотку Item-а Custom ListView item setColor Ошибка при выборе Item в ListView Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |