Android:格式化文本部分不起作用

时间:2012-05-28 13:24:57

标签: android textview android-textattributes

在我的strings.xml文件中,我定义了以下内容:

<string name="mystring"><b>Bold text</b>Non-bold text</string>

它应该有效,因为它已指定here。但实际上只显示粗体文本,而文本的另一部分则消失了。

1 个答案:

答案 0 :(得分:5)

取自this SO帖子

使用此

textView.setText(Html.fromHtml(someText));

或通过这种方式从xml

您可以在strings.xml中包含原始HTML,只要将其包装在

中即可
<![CDATA[ ...raw html... ]]>

示例:

<string name="nice_html">
<![CDATA[
<p>This is a html-formatted string with <b>bold</b> and <i>italic</i> text</p>
<p>This is another paragraph of the same string.</p>
]]>
</string>

然后,在您的代码中:

TextView foo = (TextView)findViewById(R.id.foo);
foo.setText(Html.fromHtml(getString(R.string.nice_html)));

你也可以在CDATA块中使用反斜杠 - 转义撇号/单引号,这样你就可以使用<b>can\'t</b>而不是无限的<b>can&apos;t</b>