如何在android中的对话框中加载webview
Posted
技术标签:
【中文标题】如何在android中的对话框中加载webview【英文标题】:How to load web view in dialoge in android 【发布时间】:2011-11-23 13:30:05 【问题描述】:我正在尝试将 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 视图。有谁能帮我解决这个问题。
提前致谢。
【问题讨论】:
【参考方案1】:使用包含 Webview 的 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_
android:layout_
>
<WebView
android:id="@+id/webview"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:layout_
android:layout_
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();
);
【讨论】:
您好 blou,感谢您的快速响应。我仍然遇到同样的问题。您认为 Web 视图正常工作还需要什么其他条件。我在清单中添加了互联网权限。 我弄错了代码 findViewByID 应该是 dialog.findViewById Using Android Studio 1.5 CANNOT use this method, it says 'Error: Android-XML:Placeing a@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);
【讨论】:
感谢安迪,感谢您的快速回复。让我试试看。【参考方案3】:设置 webview 的高度和宽度,它会工作。
【讨论】:
【参考方案4】:我建议创建一个带有 webview 布局的活动以及您想要添加到其中的任何其他内容。
当你在 android manifest 中注册它时使用这个标签。
<activity android:theme="@android:style/Theme.Dialog">
【讨论】:
为什么会被否决?请在 cmets 中说明或根本不要投反对票! 我也推荐这个答案以上是关于如何在android中的对话框中加载webview的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Android Kotlin 在 WebView 中加载 URL?
Android:如何在 WebView 中加载 html 字符串?