2011-06-21 62 views
0

我想要一个webview进入弹出对话框。我可以得到它与webview弹出,但是当我尝试使它加载一个Url,它崩溃了我的应用程序...任何帮助?我也尝试将WebView设置放入OnCreate中。Android - Webview在弹出对话框中?

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; 

回答

1

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

4

尝试更换:

webview = (WebView) findViewById(R.id.webview); 

有:

webview = (WebView) dialog.findViewById(R.id.webview); 

而且,通常情况下,你要做的第一件事,当你的应用程序崩溃时你在logcat中寻找一个例外,并尝试找出什么从它是错误的。如果你不能最终发布堆栈溢出问题,那么这个异常对我们非常有用,以帮助你。

我敢打赌,你得到的例外是在这条线的NullPointerException

webview.getSettings().setJavaScriptEnabled(true); 
+0

我也有同样的问题,但如何加载使用javainterface –

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(); 
+0

完善这个popupwindow,谢谢!一个问题...我怎么能在这个启用JavaScript?我似乎无法,如果我把webview.getSettings()setJavascriptEnabled(true); app关闭... – user802609

+0

尝试使用wb.getSettings()。setJavaScriptEnabled(true);我现在已经尝试过了 –