轉(zhuǎn)載注明出處: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)//*第一個出現(xiàn)的索引位置
? ? ? ? while (a != -1) {
? ? ? ? ? ? integers.add(a)
? ? ? ? ? ? a = content.indexOf(chars, a + 1)//*從這個索引往后開始第一個出現(xiàn)的位置
? ? ? ? }
? ? } 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設(shè)置? SpannableStringBuilder 后的? content
? ? ? ? textl.text = style
? ? }
}