Как использовать Android (немодальные) диалоги?

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам