问题标签 [spannablestringbuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
509 浏览

android - 根据条件以编程方式更改字符串颜色

是否可以使用 if 条件为 TextView 内的不同文本设置多种颜色?

这是我的代码:

但最终的结果总是打印:RED YELLOW BLUE 和它的颜色,只有三个文本。

我希望 BLACK RED GREEN YELLOW ORANGE BLUE WHITE 写在一起,如果没有可扩展的颜色,则适用白色。

0 投票
1 回答
122 浏览

android - 如何动态加粗(跨度)字符串中的搜索文本?

我有一个字符串,我必须在其中找到一个正在从最终用户搜索的单词并将其加粗以突出显示。

例子:

String : 地址必须有格式。地址可以是多行。

必需文本:地址必须具有格式。地址可以是多行。

0 投票
1 回答
222 浏览

android - html在android中转换为粗体或斜体跨越字符串

我的自定义 EditText 中有方法使文本变为粗体斜体

这是我的方法:

当我将粗体文本样式切换为斜体样式或反转时,一切都很好,并且在 EditText 中它从粗体变为斜体,但是当我想将该文本转换为 html 时出现问题并返回一个包含两个 html 标签的 html 加粗斜体文本但我只想在粗体或斜体之间切换。

这是我转换为 html 的方法:

简而言之

我要这个:

或者

但输出是这样的:

0 投票
1 回答
202 浏览

java - SpannableStringBuilder append() NullPointerException

SpannableStringBuilder源代码append()功能不回避NullPointerException??如果 text 为空,append()函数肯定 throw NullPointerException。如果文本为空,很容易忘记检查每个案例。例如,文本可能来自服务器。有人SpannableStringBuilder append()对避免npe的功能有更好的想法吗?

0 投票
2 回答
48 浏览

android - 如何实现仅对特定部分着色的 SpannableStringBuilder?

我需要实现一个字符串来更改它的某些部分的颜色以突出显示它。我需要创建一个类似于热键指南的东西,它显示您可以通过按下突出显示的数字来执行的操作。我曾经使用 Html。来自 HTML,但我读到它并不快,因为解析。我需要在慢速设备上运行代码。这是我当前的代码。

它目前所做的是改变内部第一个子字符串的样式,<p></p>是一个数字。出于某种原因, tagStart 和 tagEnd 没有从最终的 SpannableStringBuilder 中删除,即使当我登录时它显示标签已被删除。

我使用<p></p>知道哪个部分是需要上色的。我需要它,因为动作也可以包含数字,我不需要在动作上重新着色这些数字。例如,操作 1(按 1)。该字符串还包含每个动作之间的表情符号,我使用这些符号的计数来了解字符串包含多少个动作。

更简单的解释:
我需要做的如下

行动 1(按<p>1 </p>) 行动 2(按<p>2 </p>

使用 SpannableStringBuilder 类似的东西

0 投票
0 回答
30 浏览

android - 带有实线下划线的透明字符(尝试使用两个跨度但对替代方案开放)

我正在尝试将我的 TextView 中的单个字符设置为透明但也在该字符下划线。下划线应该是可见的。

由于我已经在使用 SpannableStringBuilder 我决定尝试将字符的前景色设置为透明,然后添加下划线范围:

唯一的问题是 ForegroundColorSpan 也将下划线颜色更改为透明。我怎样才能防止下划线也是透明的,或者我怎样才能隐藏单个字符但也让它明显下划线?

我已经看到了一些改变下划线颜色的其他解决方案,但他们使用了反射,这不是我想要的选项。

0 投票
1 回答
720 浏览

java - 可以将多个 setSpan 应用于同一个 SpannableStringBuilder 吗?

我有一个句子中的特定单词列表,我想加粗并更改文本颜色。出于某种原因,文本颜色更改正在起作用,但似乎没有应用粗体。更奇怪的是,将字体更改为斜体会反映出来。我的问题是,什么可能导致我的文字不加粗?

这导致正确的单词颜色发生变化,但没有粗体。如果您更新到斜体,这一切也都有效。只有粗体文本不起作用。有什么想法为什么?

为了进一步检查,这是我的 dumpSpans 日志:

0 投票
2 回答
513 浏览

android - 在 SpannableStringBuilder getSpans() 中添加额外的行

我正在组合不同的字符串以显示在TextView. 我正在使用 a 来执行此操作SpannableStringBuilder,因为我需要对字符串中的一些子字符串应用不同的颜色。现在在组合字符串中,有一些我用不同颜色显示的 url 以及一些其他文本。我正在做类似下面的事情。

输出是:Link1 Link2 some links here.

我想在不同的行上显示每个 url,并在 url 之后显示其余文本。

例如。

但我无法为此找到解决方案。任何帮助表示赞赏。

0 投票
0 回答
78 浏览

java - 使用 SpannableStringBuilder 更改文本

我想在被(*)包围时制作文本,它会是粗体,被(〜)包围它会是罢工。我按照此链接并将代码修改为这样

期望输出:

期待

我的输出:

我的输出

我怎样才能做到这一点?

0 投票
1 回答
3232 浏览

kotlin - Kotlin - 在为 setSpans() 声明开始、结束和标志时,为 SpannableStringBuilder 创建没有重复参数的自定义 ext 函数

这是之前的 MainActivity.kt

到目前为止,这是我的方法。

扩展名.kt

MainActivity.kt

这是否可以创建这样的扩展

所以我们不必使用重复的开始、结束和标志参数,但可以修改,例如: