Урок 64. Диалоги. AlertDialog. Список с множественным выбором

Обсуждение уроков
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 64. Диалоги. AlertDialog. Список с множественным выбором

Сообщение damager82 » 26 мар 2012, 03:00

В этом уроке:

- формируем список с множественным выбором в диалоге

[url=http://www.startandroid.ru/ru/uroki/vse ... l:nnx3utwj]Click here to read this article![/url:nnx3utwj]
Последний раз редактировалось damager82 12 май 2017, 11:55, всего редактировалось 7 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение KamiSempai » 30 май 2012, 21:20

Понадобилось использовать диалог с множественным выбором, наткнулся на проблему. Диалог создается единожды в onCreateDialog и при следующем его вызове onCreateDialog не вызывается. Следовательно содержимое диалога остается прежним, а мне нужно периодически добавлять и удалять некоторые строки.
Использую вариант с DIALOG_ITEMS.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение damager82 » 31 май 2012, 16:40

KamiSempai писал(а):Понадобилось использовать диалог с множественным выбором, наткнулся на проблему. Диалог создается единожды в onCreateDialog и при следующем его вызове onCreateDialog не вызывается. Следовательно содержимое диалога остается прежним, а мне нужно периодически добавлять и удалять некоторые строки.
Использую вариант с DIALOG_ITEMS.
В 62 уроке я рассматривал такую возможность. Или это не то?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение KamiSempai » 31 май 2012, 18:09

В этом случае прийдется писать свой адаптер с мультивыбором.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение damager82 » 01 июн 2012, 10:03

KamiSempai писал(а):В этом случае прийдется писать свой адаптер с мультивыбором.
Можно удалять диалог и каждый раз заново создавать.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение KamiSempai » 01 июн 2012, 10:40

Я тут подумал, наверное я все же свой адаптер напишу. Ситуация очень необычная. Строки хранятся в базе данных, а отмеченные строки в переменной String через запятую. Порежу строку на ArrayList и буду хранить в нем только отмеченные.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Natalia
Сообщения: 15
Зарегистрирован: 03 ноя 2012, 17:09

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение Natalia » 15 мар 2013, 22:08

Почему когда открываем подключение к БД мы вызываем остановку работы с Курсором stopManagingCursor(cursor); ?
// открываем подключение к БД
db = new DB(this);
db.open();
stopManagingCursor(cursor);
cursor = db.getAllData();
}
Кто-нибудь...

Natalia
Сообщения: 15
Зарегистрирован: 03 ноя 2012, 17:09

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение Natalia » 17 мар 2013, 19:10

Почему stopManagingCursor(cursor); а не startManagingCursor(cursor); ?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение damager82 » 10 апр 2013, 13:04

Natalia писал(а):Почему stopManagingCursor(cursor); а не startManagingCursor(cursor); ?
Это ошибка. Я пофиксил, спасибо!
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Dmitry88
Сообщения: 16
Зарегистрирован: 14 июл 2013, 12:22
Откуда: Москва

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение Dmitry88 » 17 июл 2013, 23:35

Подскажите, возможно ли в методе

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

setMultiChoiceItems(cursor, isCheckedColumn, labelColumn, listener)
вместо аргумента isCheckedColumn подсунуть как-нибудь обычный массив, в котором хранятся отмеченные позиции из диалога?

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

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение Foenix » 18 июл 2013, 03:16

а ты попробуй
R.id.team

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

buy
Сообщения: 5
Зарегистрирован: 03 авг 2013, 20:18

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение buy » 03 сен 2013, 18:36

В обработчике для списка курсора строка: ListView lv = ((AlertDialog) dialog).getListView(); лишняя, ведь lv в этом примере не используется.
В обработчике нажатия на кнопку Log.d("qwe", "checked: " + key); наверно вместо "qwe" должно быть LOG_TAG.

Al3x3i
Сообщения: 1
Зарегистрирован: 11 апр 2014, 18:13

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение Al3x3i » 11 апр 2014, 18:14

Хотел спросить,почему при использовании Item не надо соединяться с базой данных чтобы обновить состояние, а при Cursor нужно постоянно обновлять базу данных при каждом выделении ?

dmitry_n
Сообщения: 7
Зарегистрирован: 06 июн 2015, 13:47

Re: Урок 64. Диалоги. AlertDialog. Список с множественным вы

Сообщение dmitry_n » 02 сен 2015, 15:53

Al3x3i писал(а):Хотел спросить,почему при использовании Item не надо соединяться с базой данных чтобы обновить состояние, а при Cursor нужно постоянно обновлять базу данных при каждом выделении ?
Потому что в БД есть столбец Checked и нужно менять в нем поле true/false в зависимости от того, что в диалоге в чекбоксе. А при использовании Item мы вообще с БД не работаем. Ну и списки в двух этих диалогах не связаны между собой.

Ответить