我想我检查了所有相关的答案,但没有一个对我有效。
我有一个操作栏,可以选择更改网址,该选项会打开一个提醒对话框。 代码会在第一次单击时更改当前页面URL。
问题是,当我第二次点击该选项时,应用程序崩溃了
我尝试在中性按钮中使用dialog.dismiss()
或dialog.close()
,但它们不适用于创建的AlertDialog.Builder
,因此我尝试添加AlertDialog
,这没有多大意义。
我读过你应该在create()
正面按钮监听器中调用onClick
方法,但是如果我这样做,我就不能在第二个按钮中使用相同的警告对话框。我尝试将其放在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;
提前致谢!
答案 0 :(得分:0)
webAlert.setView(edittext);
这可能应该是:
webView.setView(new EditText(context));
或者:
EditText editText = (EditText) LayoutInflater.from(context).inflate(R.layout.my_edit_text);
webView.setView(editText);
如果可以,请尝试为每个新对话框创建一个新的View
。