android string.xml读取html标签的问题

在Android项目的strings.xml文件中,我有以下的HTML文本

<?xml version="1.0" encoding="utf-8"?> <resources> <string name="myHeadStr"><b><u>bold, underline </u></b></string> ... </resources> 

当我读到getString(R.string.myHeadStr)它只给出文本“粗体,下划线”它忘记了HTML标签和….

如何从string.xml中读取带有html标签的完整string

使用XML CDATA

 <string name="demoStr"><Data><![CDATA[ <b>ABC</b> ]]> </Data></string> 

getString()会得到"<b>ABC</b>"

将<用<

 <string name="myHeadStr">&lt;b>&lt;u>bold, underline &lt;/u>&lt;/b></string> 

然后,当检索:

 Html.fromHtml(getResources().getString(R.string.myHeadStr)); 

这是android文档中规定的方式。 请阅读以下链接:“HTML标记样式”: http : //developer.android.com/guide/topics/resources/string-resource.html

我遇到了同样的问题,试图在我的rescources中存储完整的html页面。 我最终通过改变三件事来解决问题:

  1. “string”节点需要将“格式化”属性设置为false
  2. 存储的html页面需要被包装在一个CData节点中。
  3. HTML页面包含撇号!

最后一个实际上是我的主要问题。 所以这里是我的strings.xml包含“正确”存储的HTML页面。

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="error_html" formatted="false" ><![CDATA[<html><head><link name="icon1" href="favicon.ico" rel="SHORTCUT ICON" /><title>Error</title><style>html, body {margin: 0;padding: 0;background: #3f0000;color: white;font-family: Arial;}#MainLink {position: relative;background: #7f0000;margin: 10px;text-decoration: none;border: 1px solid #9f0000;-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;-webkit-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.5);-moz-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.5);box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.5);}#MainLink {width: 462px;height: 220px;}#MainLink td {font-size: 20px;}#MainLink span {text-decoration: underline;font-weight: bold;font-size: 40px;}</style></head><body><table width="100%" height="100%" cellpadding="0" cellspacing="0"><tr><td align="center" valign="middle"><table cellpadding="0" cellspacing="0"><tr><td colspan="2" id="MainLink" align="center"><big><big><b>Error</b></big></big></td></tr></table></td></tr></table></body></html>]]></string> </resources> 

直接将string资源ID传递给setText()或者使用没有Html.fromHtml() Context.getText() Html.fromHtml()可以正常工作,但传入Context.getString()的结果不会。

例如:

strings.xml

<resources> <string name="html">This is <b>bold</b> and this is <i>italic</i>.</string> <resources>

Activity.java文件中的代码:

textView.setText(R.string.html); // this will properly format the text textView.setText(getText(R.string.html)); // this will properly format the text textView.setText(getString(R.string.html)); // this will ignore the formatting tags