Как мы могли искать окрашенные символы, когда мы используем searchview в recyclerview? - PullRequest
0 голосов
/ 07 января 2020

У меня есть просмотрщик и я хочу найти его с помощью поиска. Я хочу, чтобы мои искомые символы были цветными и были указаны c.

Я программирую с Kotlin.

1 Ответ

2 голосов
/ 07 января 2020

После тяжелых усилий я нашел ответ сам. Я использую такую ​​функцию:

fun colorsearch(a:String,charText: String):SpannableStringBuilder{
    var l = 0
    var b:ArrayList<Int>
    b = ArrayList()
    var w = 0
    var i = 0
    if (charText!=""){
        label@ while (i < a.length) {
            var j=0
            while (j<charText.length){
                Log.v("abc", j.toString())
                if (i == a.length)
                    break@label
                while ((a[i] != charText[j])) {
                    if (j != 0) {
                        continue@label
                    }
                    i++
                    if (i == a.length)
                        break@label
                }
                i++
                j++
            }
            b.add(i)
            w++
            if (i == a.length)
                break@label
        }
    }

    val searchtitle = SpannableStringBuilder(a)
    while (l < w) {
        searchtitle.setSpan(
            ForegroundColorSpan(Color.RED),
            b[l] - charText.length, b[l],
            Spanned.SPAN_EXCLUSIVE_INCLUSIVE
        )
        l++
    }
    return searchtitle
}

"charText" в "a" будет красным.

...