【问题标题】:HTML tags not working within strings.xmlHTML 标记在 strings.xml 中不起作用
【发布时间】:2014-04-22 01:28:44
【问题描述】:

我试图按照answer:

使用 HTML 标记 在我的 strings.xml 中制作粗体文本
<string name="name"><b>bold text here</b></string>

然后尝试将文本设置如下:

TextView textview = new TextView(getActivity());
textview.setText(getString(R.string.name));

但是这根本不起作用,标签被忽略并且文本定期显示。我已经能够使用以下方法使文本变为粗体:

<string name="name">&lt;b>bold text here&lt;/b></string>

使用 Java 中的这段代码:

TextView textview = new TextView(getActivity());
textview.setText(Html.fromHtml(getString(R.string.name)));

为什么简单的 HTML 标记不起作用,而其他方法却可以正常工作?

【问题讨论】:

    标签: java android html xml


    【解决方案1】:

    使用getText(int) 代替getString(int)

    为什么简单的 HTML 标记不起作用,而其他方法却可以正常工作?

    因为getString(int) 方法将返回一个字符串,该字符串被剥离了样式文本信息,就像docs 说的那样。

    根据 Android 开发者 guidelines 的说法,getText(int) 方法不会:

    getText(int) 将保留应用于字符串的任何富文本样式。

    带有getString()&lt;string name="name"&gt;&amp;lt;b&gt;bold text here&amp;lt;/b&gt;&lt;/string&gt; 解决方案之所以有效,是因为您已经对小于号进行了编码。

    【讨论】:

    • 当你需要将变量传递给strings.xml时这不起作用
    猜你喜欢
    • 2013-06-02
    • 1970-01-01
    • 2018-03-02
    • 2013-10-05
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多