作者:落单鸟人 | 2023-07-15 15:23
我知道我可以将转义的HTML标记放在字符串资源中.但是,查看Contacts应用程序的源代码,我可以看到他们有一种不必编码HTML的方法.从Contacts应用程序strings.xml中引用:
Sync your Google contacts!
\nAfter syncing to your phone, your contacts will be available to you wherever you go.
不幸的是,当我尝试类似的东西(比如Hello, World!
)时,getString()
返回没有标签的字符串(我可以看到logcat
).这是为什么?如何获得带有标签和所有内容的原始字符串?联系人应用程序如何执行此操作?
1> Donn Felker..:
你也可以将你的html包围在CDATA块中,getString将返回你的实际HTML.像这样:
baz is cool]]>
现在当你执行getString(R.string.foo)时,字符串将是HTML.如果需要通过可点击的TextView呈现HTML(带有如图所示的链接),则需要执行Html.fromHtml(...)调用以获取可跨越文本.
@MarcoW.Felix的答案是正确的,但使用CDATA可以帮助我们不用担心html标签.这个答案应该是正确答案.
如果您在字符串中有链接,请不要忘记添加textView.setMovementMethod(LinkMovementMethod.getInstance());
2> Felix..:
它似乎getString()
只是 - 得到一个字符串.要使用它,你必须使用getText()
(而不是更多Html.fromHtml()
),即:
mTextView.setText(getText(R.string.my_styled_text));
但是,看起来android:text
属性也是一样的,以下是等价的:
并在strings.xml
:
Hello, World!
请注意,只有支持的标签是
,,:http://developer.android.com/guide/topics/resources/string-resource.html
@Snicolas:它支持的不仅仅是文档中提到的3个标签:它支持,,,,,,,, ,