在弹出窗口中显示pdf文件

时间:2013-04-02 09:48:35

标签: android pdf popup

我开发了一个Android应用程序。我需要在弹出窗口中显示我的pdf文件(其中只包含一个页面)。我从popup.i开始新活动已将其主题更改为manifest.xml:

 <activity
        android:name="com.example.myapp.Label"
        android:label="@string/title_activity_label"
        android:theme="@android:style/Theme.Dialog" > 
    </activity>
我的Label.java的代码是:

public class Label extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle b=getIntent().getExtras();

    String pdfurl=b.getString("url");
    Boolean dilg=b.getBoolean("isDialog");


    final String googleDocsUrl = "http://docs.google.com/viewer?url=";

    WebView mWebView=new WebView(Label.this);

   // mWebView.getSettings().setJavaScriptEnabled(true);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setPluginState(PluginState.ON);

    mWebView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url){

            view.loadUrl(url);
            return false; // then it is not handled by default action
       }
    });


    mWebView.loadUrl((googleDocsUrl + pdfurl));

    setContentView(mWebView);
}
}

我的Android版本是:4.2

它会在弹出窗口中打开新活动但不会打开PDF。我的代码中是否有任何错误?

1 个答案:

答案 0 :(得分:1)

您需要使用webview显示自定义对话框。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<WebView
android:id="@+id/webview"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />

显示一个对话框。

    Dialog dialog = new Dialog(Activity.this);
    dialog.setContentView(R.layout.web_dialog)
    WebView wb = (WebView) dialog.findViewById(R.id.webview);
    wb.getSettings().setJavaScriptEnabled(true);
    WebSettings webSettings = wv.getSettings();
    webSettings.setPluginState(PluginState.ON);
    wb.setWebViewClient(new WebViewClient() {
                                            public boolean shouldOverrideUrlLoading(WebView view, String url){

                                                view.loadUrl(image_urlpdf);
                                                return false; // then it is not handled by default action
                                           }
                                        });


    wb.loadUrl((googleDocsUrl + image_urlpdf));
    dialog.setCancelable(true);
    dialog.setTitle("WebView");
    dialog.show();