Я реализовал этот пользовательский AlertDialog следующим образом:
AlertDialog dialog = new AlertDialog.Builder(this)
.setView(dialogView)
.setTitle(getResources().getString(R.string.addedit_asklater_price))
.setCancelable(false)
.create();
dialog.setMessage(text);
dialog.setOwnerActivity(this);
dialog.setButton(...)
dialog.setButton(...)
dialog.show();
doProcessUserInput();
Однако я заметил, что после dialog.show()
элемент управления сразу переходит к doProcessUserInput()
, не дожидаясь, пока пользователь не закроет диалог, используя любой издиалоговые кнопки.
Это поведение кажется странным, я ожидал, что диалог будет модальным, как я всегда знал модальные диалоги.
Я могу реструктурировать свой код так, чтобы doProcessUserInput()
вызывался из кнопки onClickListener
диалогового окна.Однако мне было интересно, есть ли способ приостановить выполнение программы на dialog.show()
до завершения диалога.
PS:
- Я пытался использовать настраиваемый диалог, который расширяетДиалог, но у него та же проблема.Я создаю диалог в кнопке
onClickListener
. - Я пытался реализовать
Activity::onCreateDialog
и использовать showDialog(id)
вместо dialog.show()
, но это та же проблема.