Android - 弹出对话框中的Webview?

时间:2011-06-21 12:29:29

标签: android webview

我正在尝试将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;

3 个答案:

答案 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)

您能否提供更多代码(可能是整个方法/类),以便我们可以看到放置它的上下文。前面的代码很可能导致此部件崩溃。