如何在对话框片段中停止触摸一侧

时间:2016-09-26 07:10:52

标签: android android-fragments android-dialog

我正在使用对话框片段, 当我点击fab时,我将显示对话框,但是当我做应用程序崩溃时,我必须setCanceledOnTouchOutside

所以,我怎么能停止触摸

 fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            FragmentManager fm = getSupportFragmentManager();
            addAction add = new addAction();
            add.getDialog().setCanceledOnTouchOutside(false);


            add.show(fm,"fragment_edit_name");

        }});

我收到了这个错误

09-26 13:06:21.997 2890-2890/com.example.todo.todoapplication E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            java.lang.NullPointerException
                                                                                at com.example.todo.todoapplication.MainActivity$2.onClick(MainActivity.java:94)

第94行是add.getDialog()。setCanceledOnTouchOutside(false);

2 个答案:

答案 0 :(得分:0)

试试这个:

func someMethod(name: String) -> AClass
// func("A")  will return A: AClass

详细     Android click event outside a dialog

答案 1 :(得分:0)

setCanceledOnTouchOutside(true)方法中设置oncreatedialog()

实施例

@Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = new Dialog(getActivity(), getThemeId());        
        final View view = getActivity().getLayoutInflater().inflate(
                R.layout.settings, null);
        dialog.setTitle(getResources().getString(R.string.action_settings));
        dialog.setCanceledOnTouchOutside(true);
        return dialog;
    }