【问题标题】:Android: format string and add bold styleAndroid:格式化字符串并添加粗体样式
【发布时间】:2014-08-08 10:39:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 你能检查返回的字符串是否正确吗?也许b 被转义了?

标签: java android string format


【解决方案1】:

来自the official documentation

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

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

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

【讨论】:

    【解决方案2】:

    以下是在 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));
    

    【讨论】:

      【解决方案3】:

      你可以在Html.fromHtml()方法中直接使用HTML文本..试试这个方法..

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

      有了这个,你可以用 HTML 标记为你的字符串设置样式.. 随心所欲..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多