【发布时间】:2020-12-09 13:31:33
【问题描述】:
我做拼写检查,想用红色显示所有错误的字母。
就像用户输入 Mossosoppo 并且正确的单词是密西西比一样。我想用红色显示错误的字母。
我尝试使用 SpannedString、SpannableString 和 SpannableStringBuilder。我还检查了 Google 会找到的所有示例。没有任何效果(= 最多 1 个字母显示为红色或位置后的所有字母)。
我尝试了所有可能的标志组合 - SPAN_INCLUSIVE_INCLUSIVE、INCLUSIVE_EXCLUSIVE、EXCLUSIVE_INCLUSIVE、EXCLUSIVE_EXCLUSIVE。
这也不允许在两个地方使用相同的颜色。 我能看到的最大值是颜色、粗体、斜体等不同属性的组合。
设置Span的接口是setSpan(Object _what_, int _start_, int _end_, int _flags_).
现在这并不能说明是否可以为同一属性(颜色)多次调用它。有人成功为单个字符串添加超过 1 个颜色跨度吗?
如果是这样我可以再次挖掘,也许我在测试所有可能的标志组合时出错了。目前我正在将代码切换到具有许多 TextViews 的 LinearLayout,其中每个 TextView 包含一个字符。那应该行得通。但它并不优雅。
【问题讨论】:
-
见这个:stackoverflow.com/a/6094346/4981406。您可以制作自己的 html 字符串。