我想更改一个单词的颜色。

例如:您好,我叫罗伯特。

(默认情况下,全黑)

现在,如果用户触摸单词“ Robert”,我希望“ Robert”的颜色变为红色。

我怎么做? (我是Android新手)

textview.setTextColor()改变了整个事情,我只想要一个词。

最佳答案

L.斯威夫特走在正确的轨道上。

这是您可以构建的非常简单的版本。

SpannableString spannableString = new SpannableString(yourstring);

ClickableSpan clickableSpan  = new ClickableSpan() {
        boolean clicked = false;

        @Override
        public void onClick(View view) {
            clicked = true;
            view.invalidate();
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            if (this.clicked) ds.setColor(Color.RED);
        }
    };

spannableString.setSpan(clickableSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

textview.setText(spannableString);
textview.setMovementMethod(LinkMovementMethod.getInstance());


开始和结束是“罗伯特”的索引位置

确保您的setText使用spannableString,而不是原始字符串。

玩得开心!

10-07 19:48