转载注明出处:hknishi_zs的文章链接
问题:
一个字符串 :String string="我爱罗爱我爱你哦"; 我想讲爱 字换成一个颜色值显示在我们的textview上面
1.如图所示代码如下:
2. 代码如下:
private val integers = ArrayList()
private fun searchAllIndex(content: String?, chars: String): List? {
if (null != content && content.length!! > 0) {
var a = content.indexOf(chars)//*第一个出现的索引位置
while (a != -1) {
integers.add(a)
a = content.indexOf(chars, a + 1)//*从这个索引往后开始第一个出现的位置
}
} else if (null != content && content.length!! == 0) {
return null
}
return integers
}
------------------------------------------------------------------------
/**
* content 你传入的String 字符串
* chars: 你查找的字符
*/
private fun changeTxt(content: String,chars: String){
val content = "我爱罗爱我爱你哦!爱"
val list = searchAllIndex(content, chars)
val style = SpannableStringBuilder(content)
if (null != list) {
for (integer in list) {
if (integer != content.length) {
style.setSpan(ForegroundColorSpan(Color.RED), integer,
integer + 1, Spannable.SPAN_EXCLUSIVE_INCLUSIVE)
} else {
style.setSpan(ForegroundColorSpan(Color.RED), integer,
content.length, Spannable.SPAN_EXCLUSIVE_INCLUSIVE)
}
}
//给TextView设置 SpannableStringBuilder 后的 content
textl.text = style
}
}