我知道我可以将转义的HTML标记放在字符串资源中。但是,查看Contacts应用程序的源代码,我可以看到它们具有不必编码HTML的方式。引用来自联系人应用程序strings.xml:
<string name="contactsSyncPlug"><font fgcolor="#ffffffff">Sync your Google contacts!</font>
\nAfter syncing to your phone, your contacts will be available to you wherever you go.</string>
不幸的是,当我尝试类似的操作(例如
Hello, <b>World</b>!
)时,getString()
返回不带标签的字符串(我可以在logcat
中看到它)。这是为什么?如何获得带有标签和所有内容的原始字符串?联系人应用程序如何执行? 最佳答案
您也可以将html括在CDATA
块中,并且getString()
将返回您的实际HTML。像这样:
<string name="foo"><![CDATA[Foo Bar <a href="foo?id=%s">baz</a> is cool]]></string>
现在,当您执行
getString(R.string.foo)
时,字符串将为HTML。如果您需要通过可点击的TextView
渲染HTML(带有所示的链接),则需要执行Html.fromHtml(...)
调用以获取可扩展文本。