我知道我可以将转义的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(...)调用以获取可扩展文本。

07-28 02:14
查看更多