我知道我可以用TextView更改Spannable部分的颜色,我用它来更改文本中每个字符'e'的颜色。但是我得到了这个错误:


  java.lang.IndexOutOfBoundsException:setSpan(55 ... 56)结束于
  长度0


我的代码:

aye="My Text has been written today";
SpannableString spantext=new SpannableString(aye);
for (int i=0;i<aye.length();i++) {
    if (aye.contains("e")) {
        a+=aye.indexOf("e", a)+1;
        spantext.setSpan(new ForegroundColorSpan(Color.RED), a, a+1, 0);
        holder.tv_arabic.setText(spantext);
    }
}


可以吗

最佳答案

尝试这个:

aye="My Text has been written today";
String newText = aye.replace("e", "<font color=#FF0000>e</font>");
holder.tv_arabic.setText(Html.fromHtml(newText));


https://stackoverflow.com/a/6094346/3922891的原始想法

09-29 22:52