◯alaxy S4の罠?

オワリークリスマス。


DialogFragmentでバックキーとか、黒背景タップでキャンセルするときに、

Dialog#setCancelable(false)ではなくて、DialogFragment#setCancelable(false)的な話はあるあるです。


これで全て解決してくれるものだと、勝手に思ってたんですが、現実そんな甘くなかったでした。



◯alaxy S4だけねw

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        setCancelable(false);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        ...
        return builder.create();
    }


よく上記のコードで終了するケースがあると思うのですが、S4では一味加えます。

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        setCancelable(false);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        ...
        Dialog dialog = builder.create();
        dialog.setCanceledOnTouchOutside(true);// <- ココ重要
        return dialog;
    }


端末によって初期値ちゃうんですね。。


以上。