Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【Android】DialogFragmentのdismissで落ちるときの対策

こんにちは。

これまでDialogFragmentについて何回か触れてきましたが、どうもたまに dismiss で落ちることがあるようです。

DialogFragmentの表示を消すときは、基本的に以下のようにして消していました。

if (dialogFragment.getShowsDialog() && dialogFragment != null)
    dialogFragment.getDialog().dismiss(); // ここで落ちる

上記のようにすると、コメントのある行で NullPointerException が起きてしまします。 どうやら、dialogFragment.getDialog() がNullなようです。 なぜNullになってしまうのかは不明ですが、とりあえず下記のようにして解決出来ました。

if (dialogFragment.getShowsDialog() && dialogFragment != null)
    dialogFragment.onDismiss(dialogFragment.getDialog());;

こちらのエントリーを参考にさせて頂きましたが、結構困っていたので本当に助かりました!

今後は上記のように onDismiss を使っていきたいと思います。

今回は以上です。 それでは。

参考にさせていただいたサイト

AndroidでDialog~DialogFragmentの使い方~