我想更改一个单词的颜色。
例如:您好,我叫罗伯特。
(默认情况下,全黑)
现在,如果用户触摸单词“ 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,而不是原始字符串。
玩得开心!