美文网首页
SpannableString改变字体颜色不起作用

SpannableString改变字体颜色不起作用

作者: 最爱最晴天 | 来源:发表于2020-06-23 15:56 被阅读0次

    今天在写代码时遇到这样的需求,就是在同一个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)是不行的。以前没有注意过,算是一个小坑。

    相关文章

      网友评论

          本文标题:SpannableString改变字体颜色不起作用

          本文链接:https://www.haomeiwen.com/subject/blehfktx.html