2011-09-23 44 views
1

我試圖在'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 –

回答

0

我建議你創建一個活動。

而你在清單中註冊它。給它的對話框的外觀與

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

我沒有啓動任何活動正如你所看到的我已經評論過代碼'startActivity(...)'。所以沒有必要在manifest文件中聲明上面的標籤。 – YuDroid