Android:单击时更改ClickableSpan的背景色

Android:单击时更改ClickableSpan的背景色,android,Android,我有一个可点击span的SpannableString,如下所示 for (int i = 0; i < items.size(); i++) { final SpannableString span = new SpannableString(items.get(i)); final int index=i; span.setSpan(new ClickableSpan() { @

我有一个可点击span的SpannableString,如下所示

for (int i = 0; i < items.size(); i++) {
            final SpannableString span = new SpannableString(items.get(i));
            final int index=i;

            span.setSpan(new ClickableSpan() {

                @Override
                public void onClick(View widget) {

                }

                @Override
                public void updateDrawState(TextPaint ds) {
                    ds.setColor(Color.LTGRAY);
                    ds.setUnderlineText(false);

                }
            }, 0, span.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

            builder.append(span);
        }

//my text view
txt.setText(builder);
txt.setMovementMethod(LinkMovementMethod.getInstance());
for(int i=0;i
我想做的是在单击时更改跨度的前景色


我如何才能做到这一点?

我扩展了clickableSpan类,并向它传递了一个标志,让我知道我应该突出显示它

SpannableStringBuilder tag;
.... tag.setSpan(new WordSpan(i, tokens[i], wordtohighlitedID) { 

使用以下命令:

view.setSelector(new ColorDrawable(Color.BLUE));

如果您希望消除选择上的绿色突出显示,以下是您想要知道的:

显然,在自定义类中重写
public void updateDrawState(TextPaint ds)
不会影响高亮显示颜色。它仅用于设置下划线颜色(或隐藏/显示)

您需要做的只是:
textView.setHighlightColor(Color.TRANSPARENT)
其中textView是包含ClickableSpan的内容

希望它对你们所有人都有效。
请随意询问任何相关问题。

ds.setColor(Color.LTGRAY);这不是clicable Span的颜色这会给它一个初始颜色,我想在单击它时设置一个不同的颜色这只适用于ListView,与Spans无关。正是我在找这个。
view.setSelector(new ColorDrawable(Color.BLUE));