我真正想要的是Windows调用模式对话框,即用户必须先关闭它才能执行其他操作。如何在Android中获得该效果?这是第一次有人运行我的应用程序时特别重要,因为我希望他们接受一些条款和条件,但我还有其他需要的情况。
目前我的activity类中有一个静态类,如下所示,我通过在该类上调用静态方法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;
}
}
答案 0 :(得分:2)
致电dialog.setCanceledOnTouchOutside(false);
实际上曾经是默认值。我不知道他们为什么要改变它。请注意,这不会阻止他们只是按下后退按钮关闭它 - 停止呼叫setCancelable(false);