gpt4 book ai didi

java - 连接字符串资源而不丢失 HTML 格式

转载 作者:行者123 更新时间:2023-12-02 08:06:33 24 4
gpt4 key购买 nike

我需要将 HTML 格式的文本(简单的东西,只有几个 <b>/</b><i>/</i> 标记)放入 TextView 中。我需要组合此类文本的三行不同行,每行都存储在字符串资源中,如以下代码所示。

(TextView) newText.setText(getString(R.string.textstr1) + getString(R.string.textstr2) + getString(R.string.textstr3));

它不起作用,因为将它们连接为字符串会丢失 HTML 格式。

我尝试使用 getText() 来解决它而不是getString()和 CharSequence.append(),但这也会删除 HTML。我使用 HTML.fromHTML() 尝试了各种选项,但它们都不起作用。 Android Developer 提出了这种粗略的方法,您必须使用转义的 HTML(< b > 变为 < b > 等),但这需要重新格式化我的所有字符串资源,这让我觉得很困惑。

有人知道更好的方法来完成我想做的事情吗?

最佳答案

方法 getString 消除了 HTML 标签,但有两个技巧可用:

  1. 使用<且>而不是 < 和 >。这将阻止 getString 剪切标签并仍然允许 Html.fromHtml() 解析它们。

示例:

<string name="text">This is &lt;i&gt;italic&lt;/i&gt;</string>
  1. 使用 CDATA 将所有字符串与 HTML 标签包裹起来。

示例:

<string name="text"><![CDATA[This is <i>italic</i>]]></string>

在这两种情况下,您接下来要做的就是 setText。

yourTextView.setText(Html.fromHtml(getString(R.string.text)));

如果您想要更多示例,请检查: http://android4beginners.com/2013/07/lesson-1-5-how-to-color-part-of-the-text-and-use-alpha-channel-in-textview/ (strings.xml 中的字体颜色 HTML 标签)

关于java - 连接字符串资源而不丢失 HTML 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8075815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com