我想制作一个 TextView 可点击,其中包含多个不同颜色且分配了事件的字词。
例如:
“ @james 喜欢玩 #girls ”
@james ,(绿色,粗体) #girls 以外的其他事件,(黄色)。
如何以最简单的方式实现这一目标?
答案 0 :(得分:1)
使用Spannable。
创建一个SpannableString,有两个跨度:每个单词一个,你想要的颜色与文本的其他部分不同。
String name = "@james";
String action = " likes to play with ";
String tag = "#girls";
SpannableStringBuilder builder = new SpannableStringBuilder(name + action + tag);
ForegroundColorSpan green = new ForegroundColorSpan(Color.GREEN);
ForegroundColorSpan yellow = new ForegroundColorSpan(Color.YELLOW);
builder.setSpan(green, 0, name.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
builder.setSpan(yellow, 0, name.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionTextView.setText(sb);
对于问题的可点击部分,请使用与上面的ForegroundColorSpan相同的ClickableSpan。
答案 1 :(得分:0)
您可以在TextView上设置HTML格式的文本,当然,它不支持所有HTML标记,但它支持许多文本格式标记。您可以像这样设置html格式的文本
textView.setText(Html.fromHtml(htmlString));