listview и checkbox

Интерфейс, диалоги, темы, стили, меню
Ответить
kanaris
Сообщения: 7
Зарегистрирован: 04 ноя 2013, 21:19

listview и checkbox

Сообщение kanaris » 04 ноя 2013, 21:30

Имеется что-то вроде юзерчузера.
Использую кастомный listview с кастомным адаптером.
Каждый итем listview - два textview и checkbox.
Имя пользователя и его должность.
Пользователь может выбрать нное количество пользователей. (выбор осуществляется выделением чекбокса)
При повторном клике на чекбокс выделение снимается.
Все работает более-менее нормально.
Но есть проблема: также имеется поиск пользователя
Допустим человек выбрал трех пользователей, и хочет выбрать еще одного.
Для этого он вводит допустим в edittext один символ, пользователи в списке фильтруются.
Я очищаю все, что связано с моим списком и отправляю запрос заного. (пользователи берутся с сервера)
И соответственно, пользователи которые были выделены - оказываются не выделены.
Кто нибудь подскажет, как с этим справиться?
Для меня работа с листвью и чекбоксом - настоящее испытание.

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

Re: listview и checkbox

Сообщение Foenix » 04 ноя 2013, 22:16

Как бы делала я:
Если у тебя arrayadapter, например, то нужно иметь 1 массив "исходных данных", которые ты получаешь с сервера. и 2 массив, который будет показываться на экране, а так же образовываться при фильтрации, т.е. при фильтрации мы на сервер не лезем, а копаемся в исходном массиве, выбирая в новый массив данные, отвечающие условию фильтрации. А когда пользователь ставит галочки в новом массиве ставить соответсвующие галочки в исходном массиве.
В результате, когда нажата кнопка ОК то выбирать данные с галочками из исходного массива.

Поискала по-быстрому примеры реализации, вот что-то похожее
http://stackoverflow.com/questions/2519 ... rayadapter
http://stackoverflow.com/questions/1380 ... tems-again
R.id.team

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

kanaris
Сообщения: 7
Зарегистрирован: 04 ноя 2013, 21:19

Re: listview и checkbox

Сообщение kanaris » 06 ноя 2013, 08:07

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

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

Re: listview и checkbox

Сообщение Foenix » 06 ноя 2013, 10:19

я тоже отправляю запрос на сервер. Вопрос в том - нужно ли так часто запрашивать?? сортировать, отбирать можно и на локале. Они что у тебя - каждую секунду там меняются?
R.id.team

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

kanaris
Сообщения: 7
Зарегистрирован: 04 ноя 2013, 21:19

Re: listview и checkbox

Сообщение kanaris » 06 ноя 2013, 12:18

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

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

Re: listview и checkbox

Сообщение Foenix » 06 ноя 2013, 12:28

тогда тебе так и нужно делать - создавать второй массив, но только уже с выбранными значениями (те, где галочки). Так я тоже делала. Причем у меня была выплывающая снизу панелька, чтоб пользователь всегда мог глянуть что он навыбирал. Панелька была скрыта, только заголовок виден, и при добавлении я просто там прописывала "выбрано столько-то". Очень удобно.
Но естественно нужно будет каждый раз при обновлении массива по списку тебе пробегаться изначальному и галочки расставлять. По-другому никак.

Кстати, у меня записей было 90 тыс, но я с сервера их переписывала в базу данных на локали, и все очень быстро было, без подгружаемых списков обошлось, однако мне все-ве записи были нужны. как тебе - не знаю.
R.id.team

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

kanaris
Сообщения: 7
Зарегистрирован: 04 ноя 2013, 21:19

Re: listview и checkbox

Сообщение kanaris » 06 ноя 2013, 13:25

спасибо. будем пробовать. :)
Причем у меня была выплывающая снизу панелька, чтоб пользователь всегда мог глянуть что он навыбирал. Панелька была скрыта, только заголовок виден, и при добавлении я просто там прописывала "выбрано столько-то". Очень удобно.
у меня примерно тоже самое. :)

Ответить