0

我正在开发一个 android 应用程序。我需要在弹出窗口中显示我的 pdf 文件(仅包含一页)。我正在从 popup 开始新活动。我在 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);
}
}

我的安卓版本是:4.2

它在弹出窗口中打开新活动,但没有打开 PDF。我的代码有什么错误吗?

4

1 回答 1

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();
于 2013-04-02T09:58:03.067 回答