listview и мультивыбор при открытии активити

Интерфейс, диалоги, темы, стили, меню
Ответить
247250
Сообщения: 3
Зарегистрирован: 23 авг 2013, 17:06

listview и мультивыбор при открытии активити

Сообщение 247250 » 23 авг 2013, 17:22

Здравствуйте.
Подскажите пожалуйста, можно ли при открытии активити со списком, в этом списке некоторые элементы отметить как выбранные?
Данные для списка (name, status) считываются из базы и элементы у которых status=1 должны быть уже отмечены в списке как выбранные.
Я только могу сохранить статус выбранных элементов, а как прочитать и установить его при открытии я не знаю.
Может это нужно создавать кастомный item и там уже работать с чекбоком? Но тогда если для списка выбрать режим мультивыбора, то в item будет 2 чекбокса(кастомный + системный).

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

Re: listview и мультивыбор при открытии активити

Сообщение Foenix » 23 авг 2013, 21:29

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

Как-то так.
R.id.team

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

247250
Сообщения: 3
Зарегистрирован: 23 авг 2013, 17:06

Re: listview и мультивыбор при открытии активити

Сообщение 247250 » 25 авг 2013, 15:39

Всё оказалось просто.

Код: Выделить всё

for (int i = 0; i < lv.getAdapter().getCount(); i++) {
            Cursor cur = (Cursor) lv.getAdapter().getItem(i);
            String status = cur.getString(c.getColumnIndex("status"));
            lv.setItemChecked(i, "1".equals(status) ? true : false);
        }

Ответить