2013-05-08 31 views
2

我真正想要的是Windows调用模态对话框,即在用户执行任何其他操作之前必须关闭的对话框。我如何在Android中获得这种效果?第一次有人运行我的应用程序时尤其重要,因为我希望他们能够接受一些条款和条件,但我还有其他情况,我也需要这些条款和条件。如何防止我的对话框在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; 
    } 
} 

回答

2

呼叫dialog.setCanceledOnTouchOutside(false);

实际使用是默认的。我不知道他们为什么改变它。请注意,这不会阻止他们按下后退按钮关闭它 - 停止该呼叫setCancelable(false);