web-dev-qa-db-ja.com

Androidでダイアログが閉じられたかどうかを知る方法は?

ダイアログが閉じられた場合、私は自分の背景のために何かしたいので、ダイアログが閉じられたかどうかを知りたい

30
Marshal Chen

onDismissListenerを使用できます

http://developer.Android.com/reference/Android/content/DialogInterface.OnDismissListener.html

_public Dialog createDialog() {
    Dialog d = new Dialog(this);
    d.setOnDismissListener(new OnDismissListener() {
        @Override
        public void onDismiss(final DialogInterface arg0) {
            // do something
        }
    });
    return d;
}
_

DialogFragmentを使用している場合は、onDismiss()をオーバーライドするだけです。

http://developer.Android.com/reference/Android/app/DialogFragment.html#onDismiss(Android.content.DialogInterface)

56
Ken Wolf

@ケンウルフはこの質問に素晴らしい答えを持っています。

onDismissListenerAPI 17。より低いものをサポートしようとしている場合は、onCancelListenerを使用できます。これはあまり良くありませんが、backButtonやAlertDialogの外側をタップする場合などに対応します。

http://developer.Android.com/reference/Android/content/DialogInterface.OnCancelListener.html#onCancel(Android.content.DialogInterface)

public Dialog createDialog() {
    Dialog d = new Dialog(this);
    d.setOnCancelListener(new DialogInterface.OnCancelListener() {
        @Override
        public void onCancel(DialogInterface dialog) {
            // do something
        }
    });
}
3
xemacobra

アラートでオプションの1つを選択した場合でも(はい/いいえ/中立ボタン)、onDismissListenerが呼び出されることに気付きました。私にとっては、警告領域の外側をクリックしてダイアログを明示的に閉じることを追跡するものが必要だったので、onCancelListenerが最良のオプションでした。

2
user1689757