Отклонение диалога
Когда вы будете готовы закрыть свой диалог, вы можете закрыть его, вызвав dismiss () для объекта Dialog.При необходимости вы также можете вызвать dismissDialog (int) из Activity, который эффективно вызывает dismiss () для Dialog для вас.
Если вы используете onCreateDialog(int)
для управления состоянием ваших диалогов (как обсуждалось)в предыдущем разделе), затем каждый раз, когда ваш диалог закрывается, состояние объекта Dialog сохраняется действием.Если вы решите, что вам больше не нужен этот объект, или важно, чтобы состояние было очищено, вам следует позвонить removeDialog(int)
.Это удалит все внутренние ссылки на объект, и если диалоговое окно отобразится, оно отклонит его.
Использование слушателей dismiss
Если вы хотите, чтобы ваше приложениевыполните некоторые процедуры в тот момент, когда диалоговое окно закрыто, затем вы должны подключить слушателя при закрытии к вашему диалогу.
Сначала определите DialogInterface.OnDismissListener interface
.Этот интерфейс имеет только один метод, onDismiss(DialogInterface)
, который будет вызываться при закрытии диалога.Затем просто передайте реализацию OnDismissListener
на
setOnDismissListener().
Однако обратите внимание, что диалоги также могут быть "отменены".Это особый случай, который указывает, что диалоговое окно было явно отменено пользователем.Это произойдет, если пользователь нажимает кнопку «назад», чтобы закрыть диалоговое окно, или если диалоговое окно явно вызывает cancel()
(возможно, из-за кнопки «Cancel
» в диалоговом окне).Когда диалог отменяется, OnDismissListener по-прежнему будет уведомляться, но если вы хотите, чтобы вам сообщили, что диалог был явно отменен (и обычно не отклоняется), вам следует зарегистрировать
DialogInterface.OnCancelListener with setOnCancelListener().