资源中的Android:getString()会丢失字符串中的所有标记

资源中的Android:getString()会丢失字符串中的所有标记,android,resources,Android,Resources,例如: 我在参考资料中有一个字符串: hey girls 当我在xml资源文件中使用它时(例如在某些文本视图中) android:text=“@string/smth” 没问题。它考虑了“小”标记。它使绳子变小了。但当我想这样使用它时: String smth=getString(R.String.smth) someTextView.setText(Html.fromHtml(smth)) 字符串没有任何标记 谢谢你的帮助。 Dan为什么不尝试用相应的unicode字符替换“”和“\” 问候。

例如:

我在参考资料中有一个字符串:

hey girls

当我在xml资源文件中使用它时(例如在某些文本视图中)

android:text=“@string/smth”

没问题。它考虑了“小”标记。它使绳子变小了。但当我想这样使用它时:

String smth=getString(R.String.smth)

someTextView.setText(Html.fromHtml(smth))

字符串没有任何标记

谢谢你的帮助。 Dan

为什么不尝试用相应的unicode字符替换“”和“\”


问候。

只需将字符串放在双引号中
”。因此,每次您都不需要输入相应的unicode字符,只需使用带双引号的原始文本即可。在文本周围加引号意味着,其中的内容只是纯文本的一部分,不用于解析

e、 g.
“嘿,姑娘们”


出现此问题的原因是,标记遵循HTML约定,因此每当您在<&>之间写入内容时,都会将其视为标记。android试图解析它。您会收到错误,因为它在strings.xml中不可解析。

使用带有转义实体的HTML标记。

你的问题得到了直接回答

有时,您可能希望创建一个样式化的文本资源,该资源也是 用作格式字符串。通常,这不会起作用,因为
String.format(String,Object…)
方法将剥离所有样式 来自字符串的信息。解决这个问题的方法是编写 带有转义实体的HTML标记,然后使用 格式化发生后,从HTML(字符串)。例如:

将样式化文本资源存储为HTML转义字符串:

<resources>
  <string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string>
</resources>

有时只有unicode字符或
有帮助,但不像Rajkiran建议的那样使用引号。如果希望html标记不被getString()删除,请参见

。您必须在字符串中添加and[![CDATA]]标记,如:

<string name="get_string_with_Html_tags"><Data><![CDATA[ This is an example.
        <br><br>
        <font color=\'black\'>black text:
        </font>
        <br><br>
        <font color=\'red\'>red text</font>
        <br></br> ]]> </Data></string>

黑色文本:

红色文本

]>
这似乎不再有效。当我切换到b>时,我得到一个XML构建错误。看起来XML非常挑剔,您必须使用位置参数。如果您只使用%s并让String.format()按顺序分配它们,您将得到一个XML生成错误。您引用了错误的段落,因为上面说您不需要转义任何内容:这很好地工作了。谢谢我没有使用单独的String.format(…),而是成功地使用了res.getString(R.String.welcome\u messages,username,mailCount)。为什么不把它放在CDATA部分呢?对我来说不管用。getString()即使字符串被引用,也会去掉标记
<string name="get_string_with_Html_tags"><Data><![CDATA[ This is an example.
        <br><br>
        <font color=\'black\'>black text:
        </font>
        <br><br>
        <font color=\'red\'>red text</font>
        <br></br> ]]> </Data></string>