android String 某一个重复的字符改变颜色

问题:

一个字符串 :String string="我爱罗爱我爱你哦"; 我想讲 爱 字换成一个颜色值显示在我们的textview上面

解决有俩中方式

一、kotlin所写   思路变量得索引

1.如图所示代码如下:

2. 代码如下:

private val integers = ArrayList<Int>()

private fun searchAllIndex(content: String?, chars: String): List<Int>? {
    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
    }
}

二、html增加颜色值

猜你喜欢

转载自blog.csdn.net/hknishi_zs/article/details/81132345