我正在组合不同的字符串以在TextView中显示。我使用的是SpannableStringBuilder,因为我需要对字符串中的几个子字符串应用不同的颜色。现在,在组合字符串中,有一些urls,我用不同的颜色显示,还有其他一些文本。我正在做下面这样的事情。
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但我无法找到解决这个问题的办法。任何帮助都是非常感谢的。
发布于 2018-11-14 07:34:58
您可以像this答案中提到的那样做。
只需使用您的UrlSpan而不是ImageSpan,如下所示:
for (URLSpan span : urls)
{
strBuilder = strBuilder.insert(strBuilder.getSpanEnd(span), System.getProperty("line.separator"));
//apply clicks
}发布于 2018-11-14 07:25:15
使用SpanableString
SpannableString spanUrl1 = new SpannableString("www.google.com");
spanUrl1.setSpan(new ForegroundColorSpan(Color.BLUE), 0, spanUrl1.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Spannable spanUrl2 = new SpannableString("www.stackoverflow.com");
spanUrl2.setSpan(new ForegroundColorSpan(Color.RED), 0, spanUrl2.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(TextUtils.concat(spanUrl1, "\n",spanUrl2));
TV.setMovementMethod(LinkMovementMethod.getInstance())https://stackoverflow.com/questions/53294916
复制相似问题