Здравствуйте.
Подскажите пожалуйста, можно ли при открытии активити со списком, в этом списке некоторые элементы отметить как выбранные?
Данные для списка (name, status) считываются из базы и элементы у которых status=1 должны быть уже отмечены в списке как выбранные.
Я только могу сохранить статус выбранных элементов, а как прочитать и установить его при открытии я не знаю.
Может это нужно создавать кастомный item и там уже работать с чекбоком? Но тогда если для списка выбрать режим мультивыбора, то в item будет 2 чекбокса(кастомный + системный).
listview и мультивыбор при открытии активити
Re: listview и мультивыбор при открытии активити
нужно воспользоваться уроком 43
и хотя это база данных у тебя и выборка будет из таблицы, как результат - курсор, тем не менее придется создать свой тип данных и перекинуть данный курсор в массив. Для списка соответственно адаптер как в уроке. Когда пользователь изменяет значение чекбокса - менять элементы массива соответсвующих id.
А далее, когда пользователь уже поотмечает строки - то сделать обратную операцию - проапдейтить таблицу в зависимости от значения чекбокса.
Как-то так.
и хотя это база данных у тебя и выборка будет из таблицы, как результат - курсор, тем не менее придется создать свой тип данных и перекинуть данный курсор в массив. Для списка соответственно адаптер как в уроке. Когда пользователь изменяет значение чекбокса - менять элементы массива соответсвующих id.
А далее, когда пользователь уже поотмечает строки - то сделать обратную операцию - проапдейтить таблицу в зависимости от значения чекбокса.
Как-то так.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: listview и мультивыбор при открытии активити
Всё оказалось просто.
Код: Выделить всё
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);
}