【问题标题】:How to format a string for a textview android如何为textview android格式化字符串
【发布时间】:2013-07-28 15:21:20
【问题描述】:

我有一个 TextView,当我调用 .setText(string) 时,它会完全按原样显示字符串。 例如,如果字符串中包含“'”,则会显示'

我该如何解决这个问题?

【问题讨论】:

  • 请提供一个完整的例子来说明您遇到的问题。该示例应仅包含与当前问题相关的代码,不应引入任何不相关的编译器错误。
  • 为了解决您的问题,您是否确定该字符串包含文字撇号?或者它是否包含序列“'”在某些情况下表示撇号。从您这里的情况来看,后者听起来是正确的,您需要找到一种方法在您的 TextView 中显示文字撇号。
  • 我已经提到了所有相关的内容。我有一个字符串,当我尝试设置 TextView 的文本时,没有问题。执行代码时出现问题:字符串未按应有的方式显示。报价显示为 '而不仅仅是 '
  • 我正在努力帮助您并想了解更多信息。如果您不愿意提供所要求的信息,那么您既浪费了我的时间,也浪费了您自己的时间。也许其他人可以猜出您需要的解决方案。
  • 我建议您使用调试器查看字符串源的实际内容,我怀疑这不是您认为的那样。

标签: android string encode formatting


【解决方案1】:

java 中的单引号 ' 需要使用反斜杠 (\) 进行转义。可以找到其他需要转义的字符here

【讨论】:

  • 字符串是在运行时从外部源读取的。我无法知道里面会有什么角色。其他想法?
【解决方案2】:

看起来您的外部来源已经完成了从 '' 的转换,因为常规单引号将在 TextView 中正常显示。在这种情况下你可以做的是:

yourTextView.setText(Html.fromHtml(stringSource));

其中stringSource 是来自外部源的字符串。这将处理的不仅仅是单引号字符。

【讨论】:

  • 但是 Html.fromHtml(stringSource) 返回一个 Spanned 对象而不是一个字符串。怎么办,这样我才能得到格式化的字符串?
  • 完成。我不知道 Spanned 实现了 CharSequence。非常感谢您的回答,对我帮助很大:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2023-02-14
  • 1970-01-01
  • 2017-07-14
  • 2015-03-26
  • 2014-09-12
  • 1970-01-01
相关资源
最近更新 更多