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

Webviewを含むXMLレイアウトを使用します。次に、dialog.setContentView(R.layout.web_dialog)を呼び出します

その後、次のようにWebビューを設定します。WebViewwv =(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
@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の高さと幅を設定すると、機能します。

于 2013-06-05T07:02:24.717 に答える
-1

私がお勧めするのは、Webビューレイアウトとそれに追加したいその他のものを使用してアクティビティを作成することです。

そして、Androidマニフェストに登録するときは、このタグを使用してください。

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