片段未附加到AlertDialog中的Activity

时间:2016-10-05 06:24:04

标签: android android-fragments

知道为什么我的代码块出现非法状态异常?

mDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    if (isAdded()) {
                        Intent viewIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                        startActivity(viewIntent);
                        dialog.dismiss();
                    }
                }
            });

是因为我在开始新活动后解雇了对话框吗?

2 个答案:

答案 0 :(得分:1)

                    startActivity(viewIntent);
                    dialog.dismiss();

 replace with below 
           dialog.dismiss();
           startActivity(viewIntent);

是因为我在开始新活动后解雇了对话框吗?

答案:是

  

Well Activity和Dialog是不同的.Activity有一个Dialog所以   没有活动对话框就没有任何立场。(只有活动一样   控制UI而不是对话框。)当你启动所有活动的新活动时   state是保存的活动堆栈,但堆栈不能对话状态   它不是部分活动UI。(Dialog只能存在活动   上下文)。如果任何活动显示的任何对话框在完成或gettting保存到活动堆栈对话框之前必须从UI中删除。

答案 1 :(得分:0)

只需替换

  dialog.dismiss();

      mDialog.dismiss();