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

标签 android

我有一个带有 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/

相关文章:

android - 在 RecyclerView 的适配器中获取上下文

android fragment 在列表中显示sqlite数据

java - Android 运行时错误的自定义加密类

android - 未显示简单 Android fragment 的框架

android - 使用 React Native 渲染 Html 在应用程序内链接

java - Android中所有屏幕的尺寸完全相同

android - 显示自定义 View 时如何使背景 View 变暗

Android:在 list 中找不到 Activity ,但它在那里?

android - 刷新 SlidingTabLayout

android - Bundle 的有效期是多久?