在Android Alert对话框中使用HTML

我有一些信息要显示在对话框中。 它来自标题,然后在它下面的文字; 标题,然后在它下面的文字。 像明智一样,有4个标题和4个描述要显示。 它应该是这样的

标题一

描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述

标题二

描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述

正如你所看到的,有大胆的文本,下划线的文本,换行符等。我想添加这种文本到警报框,所以下面是我试过的。

TextView msg = new TextView(this); msg.setText("<html><u>Message</u></html>") AlertDialog.Builder ab = new AlertDialog.Builder(this); ab.setTitle("Title"); ab.setView(msg); ab.setCancelable(false); //rest of the code 

然而这个伎俩没有奏效。 发生了什么事情,所有的HTML标签都显示出来了! 而文字不清楚! 看起来好像混合了AlertBox的默认颜色背景,黑色。 我该如何解决这个问题? 请帮忙!

PS:或者我使用错误的方法? 错误的对话框?

Solutions Collecting From Web of "在Android Alert对话框中使用HTML"

您将需要使用Html.fromHtml()TextView使用HTML标记,如下所示:

 msg.setText(Html.fromHtml("<u>Message</u>")) 

而且您还可以看到TextView支持的所有HTML标签 。

如果你想添加一个链接,并使其可点击,

 msg.setMovementMethod(LinkMovementMethod.getInstance()); msg.setClickable(true); 

事实certificate,你并不需要任何额外的TextView来做到这一点。 只需将HTML包含在警报的“setMessage()”调用(它将replace您的问题中的“setView()”调用)并将其传递给html格式的string。 确保只在格式中使用<b><u><i> ,不过因为这些是它支持的唯一标签。 如果在警报中使用String资源作为文本,请调用getResources().getText(R.id.yourHtmlString)而不是getResources().getString(R.id.yourHtmlString) ,或者将标记完全从string中去除。

试试这个,字体颜色,

  String source = "<b><font color=#ff0000> Loading. Please wait..." + "</font></b>"; 

字体下划线,

  String source = <u>Message</u> msg.setText(Html.fromHtml(source)); 

如果您需要添加更复杂的HTML ,使用CSSMETA ,您可以将WebView添加到对话框中,如下所示:

 String webViewString = yourMeta + yourCss + yourHtml; yourCustomWebView.loadData(webViewString, "text/html; charset=UTF-8", null); yourAlertDialog.setView(yourCustomWebView); 

这样,您可以在对话框中显示完全格式化的HTML页面。