如何在同一个 textView 上设置不同的跨度?

How to set separeted spans on the same textView?

我有一个 textView 和一个 ListView。 当用户单击 ListView 的一个元素时,它将被添加到 textView 中。 我想在电视上分隔这些字符串,因此当用户单击 TextView 上的指定字符串时,我想从电视中删除该元素。 我想我需要 SpannableString 但我不能将它们彼此分开。我的意思是我不能对元素执行不同的操作。

enter image description here

如果您已经有了 SpannableString,您可以尝试 concat 使用 TextUtils:

TextUtils.concat(span1, span2);

要创建 Span,您可以使用 setSpan 方法;

setSpan(Object what, int start, int end, int flags)

,例如创建一个 ClickableSpan 你可以这样做:

SpannableString styledString = new SpannableString(Text);
ClickableSpan clickableSpan = new ClickableSpan() {
                    @Override
                    public void onClick(View widget) {

                    }
                };
styledString.setSpan(clickableSpan, 0, Text.length(), 0);

P.S:请记住,您可以为 Spannable String 设置多个跨度,请注意一个跨度的结尾不要与下一个跨度的开头重叠..