如何防止我的对话框隐藏在Android中

如何防止我的对话框隐藏在Android中,android,android-dialog,android-dialogfragment,Android,Android Dialog,Android Dialogfragment,我真正想要的是Windows所称的模式对话框,即用户必须先关闭该对话框,然后才能执行其他操作。我如何在安卓系统中获得这种效果?这对于第一次有人运行我的应用程序尤其重要,因为我希望他们接受一些条款和条件,但我还有其他情况需要这样做 目前,我的活动类中有一个静态类,如下所示,我通过调用该类上的静态方法Create(…)来打开对话框。但是,如果用户只是触摸对话框后面的活动,或触摸操作栏上的搜索图标,则对话框将隐藏。有人能帮忙吗 public static class SimpleDialog exte

我真正想要的是Windows所称的模式对话框,即用户必须先关闭该对话框,然后才能执行其他操作。我如何在安卓系统中获得这种效果?这对于第一次有人运行我的应用程序尤其重要,因为我希望他们接受一些条款和条件,但我还有其他情况需要这样做

目前,我的活动类中有一个静态类,如下所示,我通过调用该类上的静态方法Create(…)来打开对话框。但是,如果用户只是触摸对话框后面的活动,或触摸操作栏上的搜索图标,则对话框将隐藏。有人能帮忙吗

public static class SimpleDialog extends DialogFragment {
    private static final String DialogLayoutIdString = "DialogLayoutId";

    public static SimpleDialog Create(Activity activity, int Layoutid) {
        FragmentManager fm = activity.getFragmentManager();
        SimpleDialog about = new SimpleDialog();
        Bundle args = new Bundle();
        args.putInt(DialogLayoutIdString, Layoutid);
        about.setArguments(args);
        about.show(fm, "");
        return about;
    }

    private int LayoutId;
    private Activity activity;

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        Bundle args = getArguments();
        LayoutId = args.getInt(DialogLayoutIdString);
        setCancelable(cancellable);
        activity = getActivity();
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){
        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
        // various code to create the dialog box
        AlertDialog alert = builder.create();
        return alert;
    }
}

调用
dialog.setCanceledOnTouchOutside(false)

这实际上是默认值。我不知道他们为什么要改变它。请注意,这不会阻止他们仅仅点击后退按钮来关闭它-停止调用
setCancelable(false)