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

标签 android url spannablestring spannablestringbuilder

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

Spannable spannedText = (Spannable) Util.getFormattedText(plainText);
SpannableStringBuilder strBuilder = new SpannableStringBuilder(spannedText);
URLSpan[] urls = strBuilder.getSpans(0, spannedText.length(), URLSpan.class);
for (URLSpan span : urls)
{
    //apply clicks               
}

输出是:Link1 Link2 some links here.

我想在不同的行中显示每个 url 以及 url 之后的其余文本。

例如。

Link1
Link2
some links here

但我找不到解决方案。任何帮助表示赞赏。

最佳答案

你可以像this中提到的那样做回答。

只需使用 UrlSpan 而不是 ImageSpan ,如下所示:-

for (URLSpan span : urls)
{
  strBuilder = strBuilder.insert(strBuilder.getSpanEnd(span), System.getProperty("line.separator"));
  //apply clicks     
}

关于android - 在 SpannableStringBuilder getSpans() 中添加额外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53294916/

相关文章:

java - Struts 2 带点的动态 URL 模式

hibernate - 动态分配hibernate连接url

java - 如何在Android中显示不同大小的文字,例如Office或Google Docs的功能

java - 在 Android 中使用 SpannableString 在 TextView 中虚线下划线

java - Android 将可点击文本设置为从一个 fragment 转到另一个 fragment

Android 按钮 setAlpha

android - "Can' t 查找API数据库; API 检查未在带有 Eclipse 的 Android App SDK 中执行

android - 为 x86 编译的 APK 可以上传到 Amazon Appstore 吗?

java - 在 POST 到外部 URL 之前执行一些 JSF 业务逻辑

Android Fragment , View 未被删除