我正在尝试将webview放入弹出对话框中。我可以通过webview弹出它,但当我尝试加载一个Url时,它会崩溃我的应用程序......有什么帮助吗?我也尝试将webview设置放在OnCreate中。
case R.id.calculatorBtn:
Dialog dialog = new Dialog(DrawingActivity.this);
dialog.setContentView(R.layout.webviewdialog);
dialog.setTitle("Calculator");
dialog.setCancelable(true);
dialog.show();
我工作很精细,直到我在这条线下面添加了它。
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://myurl.com/hi.html");
break;
答案 0 :(得分:4)
尝试更换:
webview = (WebView) findViewById(R.id.webview);
使用:
webview = (WebView) dialog.findViewById(R.id.webview);
此外,通常,当您的应用程序崩溃时,您首先要做的是查看logcat中的异常,并尝试找出它的错误。如果您不能并最终在Stack Overflow上发布问题,那么该异常对我们非常有用,以便为您提供帮助。
我打赌你在这一行上得到的例外是NullPointerException
:
webview.getSettings().setJavaScriptEnabled(true);
答案 1 :(得分:3)
可能正在初始化webview的值。
尝试使用以下代码
Dialog dialog = new Dialog(DrawingActivity.this);
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View vi = inflater.inflate(R.layout.webviewdialog, null);
dialog.setContentView(vi);
dialog.setTitle("Calculator");
dialog.setCancelable(true);
WebView wb = (WebView) vi.findViewById(R.id.webview);
wb.loadUrl("http://developer.android.com/guide/topics/ui/dialogs.html");
System.out.println("..loading url..");
dialog.show();
答案 2 :(得分:1)
您能否提供更多代码(可能是整个方法/类),以便我们可以看到放置它的上下文。前面的代码很可能导致此部件崩溃。