在DialogFragment中嵌套AlertDialog或Toast

时间:2015-11-01 23:51:43

标签: android

我的DialogFragment存在问题

public class HorairesFragment extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        LayoutInflater i = getActivity().getLayoutInflater();
        mView = i.inflate(R.layout.intervention_horaires_fragment, null);
        AlertDialog.Builder b=  new  AlertDialog.Builder(getActivity())
                .setPositiveButton(R.string.ok,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {

                            AlertDialog alert = new AlertDialog.Builder(getFragmentManager())
                            .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int id) {
                                     dialog.cancel();
                                 }
                            }).create();
                            alert.setMessage(message);
                            alert.setCancelable(false);
                            alert.show();

                            }
                        }
                )
                .setNegativeButton(R.string.annuler,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                dialog.dismiss();
                            }
                        }
                );
        b.setView(mView);
        return b.create();
    }
}

我删除了可读性代码。下面是我的DialogFragment

的屏幕截图

enter image description here

有时用户输入一些不正确的数据,所以当我点击OK按钮时,我需要显示一个带有自定义错误消息的AlertDialog(或者可能是Toast)。

问题如下:当他在AlertDialog中单击OK OK时,它也会关闭我的对话框

enter image description here

是否可以纠正这种行为?

1 个答案:

答案 0 :(得分:0)

这篇文章可以帮助您解决问题:

How to prevent a dialog from closing when a button is clicked

另一种解决方案是实现自己的Dialog类。