2011-06-21 64 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);我現在已經嘗試過了 –