android studio 用listview显示item时,用下面的方法能设一行字不同的颜色,但其中一个小细节没注意,导致程序有时闪退,花了几个小时才找到问题的根源 SpannableStringBuilder sb1 = new SpannableStringBuilder(call); //修改化设置字体颜色 // sb1.setSpan(new ForegroundColorSpan(Color.RED),0,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sb1.setSpan(new ForegroundColorSpan(Color.BLUE),0,sb1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//这里想当然的以为电话的长度是11,要用sb1.length()来代替11 不然找的数据位数不够时,程序会闪退 //sb.setSpan(new ForegroundColorSpan(Color.BLUE), 5, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //背景色 // sb.setSpan(new BackgroundColorSpan(Color.GREEN), 7, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); viewHolder.tv_call.setText(sb1);
标签:EXCLUSIVE,sb1,setSpan,Spannable,studio,new,android,闪退 From: https://www.cnblogs.com/yehuiyan/p/17652685.html