Android:格式化字符串并添加粗体样式

时间:2014-08-08 10:39:00

标签: java android string format

我的资源中有一个字符串:

<string name="region"><b>Region:</b> %1$s</string>

我正在尝试将此文本设置为textview:

tvRegion.setText(Html.fromHtml(R.string.region, "France"));

问题是字符串“region”不是粗体!

3 个答案:

答案 0 :(得分:8)

来自the official documentation

  

有时您可能想要创建一个也用作格式字符串的样式化文本资源。通常,这不起作用,因为String.format(String, Object...)方法将从字符串中删除所有样式信息。解决此问题的方法是使用转义实体编写HTML标记,然后在格式化后使用fromHtml(String)恢复。

当将html标记的开头括号插入任何xml资源文件时,您需要对其进行HTML转义。

<string name="region">&lt;b>Region:&lt;/b> %1$s</string>

答案 1 :(得分:3)

以下是如何在xml中执行此操作:

<string name="region"><![CDATA[<b>Region:</b> %1$s]]></string>

和java代码:

String str = getString(R.string.action_about_msg, "France");
tvRegion.setText(Html.fromHtml(str));

答案 2 :(得分:1)

您可以直接在 Html.fromHtml() 方法中使用HTML文字。试试这种方式..

tvRegion.setText(Html.fromHtml("<b>" + yourtext+ "</b>" + "Other text.."));

使用此功能,您可以使用HTML标签设置字符串样式..如您所愿..