我正在尝试创建一个内容丰富的AlertDialog
。
当我使用Html.fromHtml()
设置消息文本时:
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setTitle("title");
adb.setMessage(Html.fromHtml(text));
它只允许我使用基本的HTML元素,如<b>
(粗体)和<i>
(斜体)。
当我使用WebView
之类的
WebView webView = new WebView(this);
myWebView.loadData(webContent, "text/html", "utf-8");
AlertDialog.Builder adb = new AlertDialog.Builder(this);
adb.setView(webView);
我失去了默认的Android风格。
如何获取Rich上下文,例如<ul>
中的AlertDialog
?
答案 0 :(得分:1)
您可以在活动中添加webview,并将活动主题设置为menifest文件中的对话框:
<activity .....
android:theme="@android:style/Theme.Dialog"/>
答案 1 :(得分:0)
试试这个,使用自定义适配器
final Dialog custon_dialog = new Dialog(Login.this);
custon_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
custon_dialog.setContentView(R.layout.webview);
custon_dialog.setCancelable(true);
// custon_dialog.setTitle(null);
WebView mwebview = (WebView) custon_dialog.findViewById(R.id.webview);
mwebview.setBackgroundColor(0x00000000);
mwebview.loadData(webContent, "text/html", "utf-8");
custon_dialog.show();
}
});
答案 2 :(得分:0)
Html.fromHtml(text)使用tagsoup
支持您的参考html.fromhtml
的简单标记尽管使用
String text="some html code";
使用您的css等创建一个html文件,并将所有文件放在应用程序的assets文件夹中。
现在,代替这个
adb.setMessage(Html.fromHtml(text));
您希望 alerdialog 中显示内容丰富。
这应该对您有所帮助,请记住:您还可以使用自己的自定义布局来扩充对话框
AlertDialog.Builder alert = new AlertDialog.Builder(yourclass.this);
alert.setTitle("title");
WebView wv = new WebView(yourclass.this);
wv.loadUrl("file:///assets/yourHtmlFileName.html");
wv.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
alert.setView(wv);
alert.show();
}
});