Страница 1 из 1

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

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

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

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

Как-то так.

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

Добавлено: 25 авг 2013, 15:39
247250
Всё оказалось просто.

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

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);
        }