1

我正在尝试将 Web 视图加载到对话框中。我正在使用以下代码。

    final TextView seeMonthlyBill = (TextView) parentLayout
            .findViewById(R.id.my_ac_my_service_timewarnercable_link);
    seeMonthlyBill.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Dialog dialog = new Dialog(getActivity());
            WebView wb = new WebView(getActivity());
            wb.getSettings().setJavaScriptEnabled(true);
            wb.loadUrl("http://www.google.com");
            wb.setWebViewClient(new HelloWebViewClient());
            dialog.setCancelable(true);
            dialog.setContentView(wb);
            dialog.setTitle("WebView");
            dialog.show();
        }
    });

我想在单击文本视图时打开 Web 视图。当我单击文本视图对话框时,打开时没有 web 视图。任何人都可以帮我解决这个问题。

提前致谢。

4

4 回答 4

5

使用包含 Web 视图的 XML 布局。然后调用 dialog.setContentView(R.layout.web_dialog)

之后设置 webview,如下所示: WebView wv = (WebView) findViewById(R.id.webview); “R.id.webview”是 XML 布局文件中的 ID。

对话框布局示例:

<?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" />
</LinearLayout>

您的代码已修改:

final TextView seeMonthlyBill = (TextView) parentLayout
            .findViewById(R.id.my_ac_my_service_timewarnercable_link);
    seeMonthlyBill.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Dialog dialog = new Dialog(getActivity());
            dialog.setContentView(R.layout.web_dialog)
            WebView wb = (WebView) dialog.findViewById(R.id.webview);
            wb.getSettings().setJavaScriptEnabled(true);
            wb.loadUrl("http://www.google.com");
            wb.setWebViewClient(new HelloWebViewClient());
            dialog.setCancelable(true);
            dialog.setTitle("WebView");
            dialog.show();
        }
    });
于 2011-09-23T10:37:33.797 回答
1

设置 webview 的高度和宽度,它将起作用。

于 2013-06-05T07:02:24.717 回答
1
@Override

        protected Dialog onCreateDialog(int id) {

            // TODO Auto-generated method stub
                Dialog dialog = new Dialog(yourActivity.this);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                setDialogView(dialog,id);
                return dialog;
            return super.onCreateDialog(id);

        }


    private void setDialogView(final Dialog dialog,final int id) {

        // TODO Auto-generated method stub

        dialog.setContentView(R.layout.layoutContainingWebview);
        final WebView mWebView = (WebView)dialog.findViewById(R.id.WebviewId);
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
        mWebView.setBackgroundColor(Color.TRANSPARENT);
        mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_INSET);
        mWebView.loadUrl("url");
        mWebView.setWebViewClient(new MyWebViewClient());
        dialog.setTitle("Feedback");  // for Feedback           
    }


    private class MyWebViewClient extends WebViewClient { 

        @Override 
        //show the web page in webview but not in web browser
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
            view.loadUrl (url); 
            return true;
        } 

显示调用showDialog(1);

于 2011-09-23T10:35:56.843 回答
-1

我建议创建一个带有 webview 布局的活动以及您想要添加的任何其他内容。

当你在 android manifest 中注册它时,使用这个标签。

<activity android:theme="@android:style/Theme.Dialog">
于 2011-09-23T10:34:45.163 回答