Android 在设置其按钮之前创建AlertDialog

Android 在设置其按钮之前创建AlertDialog,android,Android,我想我检查了所有相关的答案,但没有一个对我有用 我有一个操作栏,它有一个更改web URL的选项,该选项会打开一个警报对话框。 代码在第一次单击时更改当前页面URL 问题是,当我第二次单击该选项时,应用程序崩溃。 我尝试使用中性按钮中的dialog.dismise()或dialog.close(),但它们不适用于创建的AlertDialog.Builder,因此我尝试添加AlertDialog,这没有多大意义。 我读到您应该调用create()方法,在onClickpositive button

我想我检查了所有相关的答案,但没有一个对我有用

我有一个操作栏,它有一个更改web URL的选项,该选项会打开一个警报对话框。 代码在第一次单击时更改当前页面URL

问题是,当我第二次单击该选项时,应用程序崩溃。
我尝试使用中性按钮中的
dialog.dismise()
dialog.close()
,但它们不适用于创建的
AlertDialog.Builder
,因此我尝试添加
AlertDialog
,这没有多大意义。 我读到您应该调用
create()
方法,在
onClick
positive button listener中,但是如果我这样做,我就不能在第二个按钮中使用相同的警报对话框。我试着把它放在
actionbar
方法之外,然后在肯定按钮内初始化它,但第二次点击就关闭了应用程序。
将其作为最终设置放在案例中,在
setPositiveButton
之前,但当我单击菜单中的选项时,按钮不会显示,因为它们是在代码中稍后设置的

另外,我不确定是否应该在adWeb或webAlert上调用show()方法。如果我在adWeb上调用它,则不会显示任何内容。

这是当前代码:

case 0:
            webAlert.setMessage("Enter url");
            webAlert.setTitle("Replacing the web page");

            webAlert.setView(edittext);

            final AlertDialog adWeb = webAlert.create();
            webAlert.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    if(edittext.getText().toString().contains("https") || (edittext.getText().toString().contains("http")))
                        wv.loadUrl(edittext.getText().toString());

                    wv.loadUrl("https:\\" + edittext.getText().toString());
                    webSettings.setBuiltInZoomControls(true);
                    wv.setWebViewClient(new Callback());

                }
            });

            webAlert.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    adWeb.dismiss();
                }
            });
            webAlert.show();
            return true;
提前谢谢

webAlert.setView(edittext)

这大概应该是:

webView.setView(new EditText(context));
或:


如果可以,尝试为每个新对话框创建一个新的
视图。

您应该使用adWeb来设置NeutralButton、setPositiveButton和showmethods@ShashankUdupa但是当我在adWeb上使用前两个方法时,我得到一个“无法解析方法…”错误将setNeutralButton和setPositiveButton移到webAlert.create()上方并使用adWeb.show()命令@ShashankUdupa但是我在adWeb.dismise()上得到“无法解析符号”,因为adWeb未初始化…您不需要执行adWeb.dismise(),单击neutralButton会自动取消警报对话框
EditText editText = (EditText) LayoutInflater.from(context).inflate(R.layout.my_edit_text);
webView.setView(editText);