【问题标题】:Android - html in strings.xml and getString()Android - strings.xml 和 getString() 中的 html
【发布时间】:2015-08-24 15:55:44
【问题描述】:

我有很多这样的字符串:

<string name="exponent_key">x<sup><small>y</small></sup></string>

当我在 xml 布局文件中设置 TextView 的文本时,结果是正确的上标 'y'。

但是,如果我使用 getString()(或事件尝试使用 .getText() 从上面提到的 TextView 检索文本)然后使用 setText() 应用更改,则“y”会变回正常文本(所以结果只是'xy')。

是否有可能解决这个问题?我希望 html 代码保留在字符串中,以便稍后我可以使用.replace() 将 x 和 y 与实际数字交换,这样它看起来就像真正的数学格式。有很多这样的操作符字符串,因此很难手动为每个操作符重新添加 html。

以防万一你想看我的节目:https://dl.dropboxusercontent.com/u/62863300/Random/ScientificCalculator.zip

【问题讨论】:

  • HTML in string resource?的可能重复
  • 啊,是的!阅读第一个答案后,我通过了该帖子。所以基本上我不会将文本转换为字符串吗?保留为 char 序列?

标签: android html xml string


【解决方案1】:

但是,如果我使用 getString() (或事件尝试检索文本,从 上面提到的TextView,使用.getText()),然后使用setText() 要应用更改,“y”会更改回普通文本(所以 结果只是'xy')。

如果您使用的是getResources().getString(),那么您必须将Html.fromHtml 的结果传递给setText()TextView.getText() 返回一个 CharSequence,它是 StringSpannable(以及其他)的超类。如果将 getString 的返回值分配给CharSequence,而不调用toString(),然后将其传递回setText,它将保持其样式

【讨论】:

  • 我会看看我能做些什么来将操作符保留为 CharSequence。编辑:如何用“一些东西”替换“y”?
  • 我应该问一个单独的问题吗?
  • 我会问一个单独的问题。我似乎找不到任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
相关资源
最近更新 更多