SpannableString改变字体颜色不起作用

今天在写代码时遇到这样的需求,就是在同一个textview中需要显示两种不同的字体颜色,想到了使用系统自带的SpannableString 来实现,但是写完代码后却不起作用,代码如下:

String optionString = item.getQuestionOption();
String optionNum = "(" + number + "人" + ")";
SpannableString spannableString = new SpannableString(optionNum);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
 helper.setText(R.id.tv_name, optionString+spannableString);

后来经过反复测试后得以解决,正确代码:

  String optionString =  item.getQuestionOption();
  String optionNum = "(" + number + "人" + ")";
  String option=optionString+optionNum;
  SpannableString spannableString = new SpannableString(option);
  spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), optionNum.length(), spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  helper.setText(R.id.tv_name, spannableString);

问题就在最后一行,即当使用spannableString时,最后textview.setText(spannableString)的时候,括号里面只能有spannableString才会起作用,如果是textview.setText(String+spannableString)是不行的。以前没有注意过,算是一个小坑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容