WebView没有显示在AlerDialog中

问题描述:

我试图在'AlertDialog'中显示'WebView'。 对于我提到的问题之一发布在这里:Displaying WebView in AlertDialog 它成功地打开了对话窗口。但我不知道它如何不显示网页内容。 这是我的“print_webview”文件,这是我在AlertDialog窗口正在不断膨胀:WebView没有显示在AlerDialog中

'<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/root"> 
    <WebView 
    android:id="@+id/dialog_webview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>  
</LinearLayout>' 

这是我的Java文件:

'public class CloudPrintTest extends Activity { 
    static final int GOOGLE_CLOUD_PRINT_DIALOG = 1; //dialog ID for google cloud print 

    /** Called when the activity is first created. */ 
    Button printButton; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     printButton = (Button)findViewById(R.id.button1); 
     printButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //startActivity(new Intent(CloudPrintTest.this,PrintDialog.class)); 
       showDialog(GOOGLE_CLOUD_PRINT_DIALOG); 
      } 
     }); 
    } 
    @Override 
    protected Dialog onCreateDialog(int id) { 
     // TODO Auto-generated method stub 
     switch(id){ 
     case GOOGLE_CLOUD_PRINT_DIALOG: 
      //LayoutInflater layoutInflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      //final View dialogLayout = layoutInflator.inflate(R.layout.print_webview, null); 
      LayoutInflater inflater = LayoutInflater.from(CloudPrintTest.this); 
      View alertDialogView = inflater.inflate(R.layout.print_webview, null); 
      WebView myWebView = (WebView)alertDialogView.findViewById(R.id.dialog_webview); 
      myWebView.getSettings().setJavaScriptEnabled(true); 
      myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
      myWebView.setWebViewClient(new PrintTestWebViewClient()); 
      myWebView.loadUrl("http://www.google.com/"); 
      AlertDialog.Builder builder = new AlertDialog.Builder(CloudPrintTest.this); 
      builder.setView(alertDialogView); 
      builder.setTitle("Google Cloud Print"); 
      builder.setCancelable(true); 
      AlertDialog printDialog = builder.create(); 
      return printDialog; 
     } 
     return null; 
    } 

    private class PrintTestWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    } 
}' 

我已经尝试了所有可能的方式,但没有得到结果。 请帮忙。 Regards

+1

http://stackoverflow.com/questions/5563957/show-soft-keyboard-in-alertdialog-with-a-webview-inside-android –

我建议你创建一个活动。

而你在清单中注册它。给它的对话框的外观与

<activity android:theme="@android:style/Theme.Dialog"> 
+0

我没有启动任何活动正如你所看到的我已经评论过代码'startActivity(...)'。所以没有必要在manifest文件中声明上面的标签。 – YuDroid