Как использовать Android (немодальные) диалоги? - PullRequest
2 голосов
/ 11 ноября 2011

Я новичок в Android, и я не уверен, что вижу "общую картину" в отношении использования немодальных диалогов Android. Я могу создавать диалоги многих типов, но я не знаю, как использовать результаты после нажатия «ОК». Ясно, что когда отображается диалоговое окно, задача вызывающего пользовательского интерфейса идет своим чередом. Ясно, что цель любого нетривиального диалога - получить от пользователя некоторую информацию для дальнейшей обработки, но основной поток уже перешел. Так как же использовать результаты диалоговых данных, чтобы действительно что-то сделать?

Единственный способ, которым я могу это сделать, - поместить свою обработку результатов в обработчик onclick кнопки «ОК», но это кажется довольно неловким и неловким для моего мышления. Тем не менее, это «обычный и привычный» способ обработки результатов диалога? Есть ли способ лучше? Или я что-то упускаю?

В качестве конкретного примера, скажем, я хочу отобразить список файлов в виде списка и выбрать один для удаления. Я помещаю код удаления в обработчик onclick?

1 Ответ

3 голосов
/ 04 апреля 2012

Да, это «обычный и привычный» способ работы с диалогами Android.Вы обрабатываете результаты в слушателях, см. Примеры в руководстве по диалогам или образец диалога выбора даты в документации.

Когда вы создаете диалог с действием (вы должны установить правильную тему действия), вы можете выполнять обработку в слушателях в диалоговом действии.Или вы можете вернуть значения родительскому действию и обработать их в onActivityResult обратном вызове.

Код, который вы запускаете в слушателях, должен быть довольно коротким и быстрым, потому что он выполняется в основном потоке.Никогда не позволяйте пользователю ждать!Если обработка занимает много времени, делайте это в фоновом режиме.

Одно замечание к модальным и немодальным (немодальным) диалогам в Android.По умолчанию все диалоги (и действия, отображаемые в виде диалогов) являются модальными.Вы можете создавать немодальные диалоги (и действия, отображаемые в виде диалогов), устанавливая соответствующие флажки окон (более подробную информацию см. this question and answer).

...