Страница 1 из 1
listview и checkbox
Добавлено: 04 ноя 2013, 21:30
kanaris
Имеется что-то вроде юзерчузера.
Использую кастомный listview с кастомным адаптером.
Каждый итем listview - два textview и checkbox.
Имя пользователя и его должность.
Пользователь может выбрать нное количество пользователей. (выбор осуществляется выделением чекбокса)
При повторном клике на чекбокс выделение снимается.
Все работает более-менее нормально.
Но есть проблема: также имеется поиск пользователя
Допустим человек выбрал трех пользователей, и хочет выбрать еще одного.
Для этого он вводит допустим в edittext один символ, пользователи в списке фильтруются.
Я очищаю все, что связано с моим списком и отправляю запрос заного. (пользователи берутся с сервера)
И соответственно, пользователи которые были выделены - оказываются не выделены.
Кто нибудь подскажет, как с этим справиться?
Для меня работа с листвью и чекбоксом - настоящее испытание.
Re: listview и checkbox
Добавлено: 04 ноя 2013, 22:16
Foenix
Как бы делала я:
Если у тебя arrayadapter, например, то нужно иметь 1 массив "исходных данных", которые ты получаешь с сервера. и 2 массив, который будет показываться на экране, а так же образовываться при фильтрации, т.е. при фильтрации мы на сервер не лезем, а копаемся в исходном массиве, выбирая в новый массив данные, отвечающие условию фильтрации. А когда пользователь ставит галочки в новом массиве ставить соответсвующие галочки в исходном массиве.
В результате, когда нажата кнопка ОК то выбирать данные с галочками из исходного массива.
Поискала по-быстрому примеры реализации, вот что-то похожее
http://stackoverflow.com/questions/2519 ... rayadapter
http://stackoverflow.com/questions/1380 ... tems-again
Re: listview и checkbox
Добавлено: 06 ноя 2013, 08:07
kanaris
проблема в том, что для поиска пользователей я отправляю запрос на сервер.
есть api метод, сортирующий пользователей.
т.е в событии onchange при каждом изменении этого едита, я отправляю запрос на сервер, сервер возвращает отфильтрованных пользователей и я формирую список заного.
Re: listview и checkbox
Добавлено: 06 ноя 2013, 10:19
Foenix
я тоже отправляю запрос на сервер. Вопрос в том - нужно ли так часто запрашивать?? сортировать, отбирать можно и на локале. Они что у тебя - каждую секунду там меняются?
Re: listview и checkbox
Добавлено: 06 ноя 2013, 12:18
kanaris
дело в том, что у меня реализовано динамическое добавление пользователей при скроллинге.
пользователей может быть и 10000, сразу при создании активити грузить все 10000 пользователей - немного не правильно.
т.е изначально грузится 50, когда пользователь достигает конца списка - подгружается еще 50, и так пока все пользователи не будут добавлены.
но при поиске - все пользователи фильтруются, а не только те, которые в данный момент находятся в списке.
Re: listview и checkbox
Добавлено: 06 ноя 2013, 12:28
Foenix
тогда тебе так и нужно делать - создавать второй массив, но только уже с выбранными значениями (те, где галочки). Так я тоже делала. Причем у меня была выплывающая снизу панелька, чтоб пользователь всегда мог глянуть что он навыбирал. Панелька была скрыта, только заголовок виден, и при добавлении я просто там прописывала "выбрано столько-то". Очень удобно.
Но естественно нужно будет каждый раз при обновлении массива по списку тебе пробегаться изначальному и галочки расставлять. По-другому никак.
Кстати, у меня записей было 90 тыс, но я с сервера их переписывала в базу данных на локали, и все очень быстро было, без подгружаемых списков обошлось, однако мне все-ве записи были нужны. как тебе - не знаю.
Re: listview и checkbox
Добавлено: 06 ноя 2013, 13:25
kanaris
спасибо. будем пробовать.
Причем у меня была выплывающая снизу панелька, чтоб пользователь всегда мог глянуть что он навыбирал. Панелька была скрыта, только заголовок виден, и при добавлении я просто там прописывала "выбрано столько-то". Очень удобно.
у меня примерно тоже самое.
