美文网首页
Android 中搜索的关键字变亮

Android 中搜索的关键字变亮

作者: 因为我的心 | 来源:发表于2023-04-06 10:37 被阅读0次

    一、前言:

    需求:java 字符串中的搜索的关键词变亮

    效果图:

    效果图.png

    字符串数字变亮的地址https://www.jianshu.com/p/fab20115165b

    二、代码实现:

    1、调用

    val spannableStringBuilder = getSpannableKeyString(context, item, "11111")
     tvContent.text = spannableStringBuilder
    

    2、功能实现

     /**
         * 文字中的选中字变橘黄色
         */
        fun getSpannableKeyString(
            context: Context,
            content: String? = null,
            regex:String
        ): SpannableStringBuilder? {
            content?.let {
                val style = SpannableStringBuilder(it)
                //去除key中重复的字符
                val set: MutableSet<Char> = HashSet()
                for (c in regex.toCharArray()) {
                    set.add(c)
                }
                //for循环字符变色
                set.forEach { newRegex ->
                    if (content.contains(newRegex)){
                        //查找所有包含字符的下标
                        val list = findAllOccurrences(content,newRegex)
                        list.forEach { index->
                            //字体颜色设置
                            style.setSpan(
                                ForegroundColorSpan(context.resources.getColor(R.color.color_FDA924)),
                                index,
                                index+1,
                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
                            )
                        }
                    }
                }
    
                return style
            }
            return null
        }
    
    
     /**
         * 查找字符的下标的数组
         */
        var result = arrayListOf<Int>();
        fun findAllOccurrences(str:String, key:Char):ArrayList<Int> {
            result.clear()
            var index = str.indexOf(key)
            while (index !== -1) {
                result.add(index)
                index = str.indexOf(key, index + 1)
            }
            return result
        }
    

    相关文章

      网友评论

          本文标题:Android 中搜索的关键字变亮

          本文链接:https://www.haomeiwen.com/subject/vopeddtx.html