ダイアログを閉じる
ダイアログを閉じる準備ができたら、Dialogオブジェクトでdismiss()を呼び出してダイアログを閉じることができます。必要に応じて、アクティビティからdismissDialog(int)を呼び出すこともできます。これにより、ダイアログでdismiss()が効果的に呼び出されます。
ダイアログの状態を管理するためにを使用している場合onCreateDialog(int)
(前のセクションで説明したように)、ダイアログが閉じられるたびに、ダイアログオブジェクトの状態がアクティビティによって保持されます。このオブジェクトが不要になると判断した場合、または状態をクリアすることが重要な場合は、を呼び出す必要がありますremoveDialog(int)
。これにより、オブジェクトへの内部参照がすべて削除され、ダイアログが表示されている場合は、オブジェクトが閉じられます。
却下リスナーの使用
ダイアログが閉じられた瞬間にアプリケーションでいくつかの手順を実行したい場合は、ダイアログに閉じたままのリスナーをアタッチする必要があります。
まず、を定義しDialogInterface.OnDismissListener interface
ます。このインターフェイスにはonDismiss(DialogInterface)
、ダイアログが閉じられたときに呼び出されるメソッドが1つだけあります。次に、OnDismissListener
実装をに渡すだけです
setOnDismissListener().
ただし、ダイアログは「キャンセル」することもできることに注意してください。これは、ダイアログがユーザーによって明示的にキャンセルされたことを示す特殊なケースです。これは、ユーザーが「戻る」ボタンを押してダイアログを閉じる場合、またはダイアログが明示的に呼び出す場合cancel()
(おそらくダイアログの「Cancel
」ボタンから)に発生します。ダイアログがキャンセルされた場合でも、OnDismissListenerは通知されますが、ダイアログが明示的にキャンセルされた(通常は閉じられない)ことを通知したい場合は、登録する必要があります。
DialogInterface.OnCancelListener with setOnCancelListener().