我有一个带有 ClickableSpan 的 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());
我想要做的是在单击时更改跨度的前景色。
我该怎么做?
最佳答案
如果您希望摆脱选择时的绿色突出显示,这就是您想知道的:
显然,在您的自定义类中覆盖 public void updateDrawState(TextPaint ds)
不会影响突出显示颜色。仅用于设置下划线颜色(或隐藏/显示)。
您需要做的就是:
textView.setHighlightColor(Color.TRANSPARENT);
其中 textView 是包含 ClickableSpan 的内容。
希望它对你们所有人都有效。 请随时提出任何相关问题。
关于Android:单击时更改 ClickableSpan 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851655/