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

时间:2011-01-09 05:04:58

标签: android string

在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标签读取完整的字符串

4 个答案:

答案 0 :(得分:106)

使用XML CDATA

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

getString()将获得"<b>ABC</b>"

答案 1 :(得分:35)

替换&lt;与&amp; lt;

<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

答案 2 :(得分:5)

直接将字符串资源ID传递给setText()或使用不Context.getText()的{​​{1}}正常工作,但传递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

答案 3 :(得分:1)

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

  1. &#34; string&#34;节点需要设置&#34;格式化&#34;属性为 false
  2. 存储的html页面需要包装在CData节点中。
  3. html页面 NOT 包含撇号!
  4. 最后一个是我的主要问题。 所以这是我的strings.xml包含&#34;正确&#34;存储的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>