色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android實(shí)現(xiàn)高亮搜索功能的示例

瀏覽:37日期:2022-09-18 18:46:24
首先看效果圖:

整詞高亮:

Android實(shí)現(xiàn)高亮搜索功能的示例

分詞高亮:

Android實(shí)現(xiàn)高亮搜索功能的示例

下面貼上我封的方法

/** * 關(guān)鍵字高亮顯示 * text 原文 * keyWord 需要高亮顯示的關(guān)鍵字 * isCut 是否需要做分詞高亮展示 * isCut = true 關(guān)鍵字里的每一個(gè)字,只要有都會(huì)高亮 * isCut = false(默認(rèn)) 只有整詞才會(huì)高亮 **/fun stringToHighLight(text: String, keyWord: String, isCut: Boolean = false): SpannableStringBuilder { val spannable = SpannableStringBuilder(text) try {var keyword: MutableList<String> = ArrayList()if (isCut) { for (i in keyWord.indices) {keyword.add(keyWord.substring(i, i + 1)) }} else { keyword = arrayListOf(keyWord)}var span: CharacterStyle?var wordReg: Stringfor (i in keyword.indices) { var key = '' if (keyword[i].contains('*') || keyword[i].contains('(') || keyword[i].contains(')')) {val chars = keyword[i].toCharArray()for (k in chars.indices) { key = if (chars[k] == ’*’ || chars[k] == ’(’ || chars[k] == ’)’) {key + '' + chars[k].toString() } else {key + chars[k].toString() }}keyword[i] = key } wordReg = '(?i)' + keyword[i] val pattern: Pattern = Pattern.compile(wordReg) val matcher: Matcher = pattern.matcher(text) while (matcher.find()) {span = ForegroundColorSpan(Color.parseColor('#4599F7'))spannable.setSpan(span, matcher.start(), matcher.end(), Spannable.SPAN_MARK_MARK) }} } catch (e: Exception) {LogUtil.d('stringToHighLight-Error-------->$e') } return spannable}使用方法:1、普通場(chǎng)景使用

//整詞搜索 isCut可不傳

stringToHighLight('原文', '關(guān)鍵字')

//分詞搜索

stringToHighLight('原文', '關(guān)鍵字',true) 2、在DataBinding中使用

1):定義BindingAdapter

@BindingAdapter('app:setHighLightText', 'app:setHightkeyWord')fun setHighLightText(view: TextView, content: String?, keyWord: String) { content?.let { view.text = stringToHighLight(it, keyWord) }}

2):在xml中綁定

<TextViewandroid:layout_width='wrap_content'android:layout_height='wrap_content'android:textColor='@{itemmodel.isRead?@color/readColor:@color/noreadColor}'android:textSize='14sp'android:textStyle='bold'app:layout_constraintTop_toTopOf='parent'app:setHighLightText='@{itemmodel.title}'app:setHightkeyWord='@{viewmodel.keyString}' />

搞定!

以上就是Android實(shí)現(xiàn)高亮搜索功能的示例的詳細(xì)內(nèi)容,更多關(guān)于Android實(shí)現(xiàn)高亮搜索的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 成人a毛片手机免费播放 | 92精品国产成人观看免费 | 国产做a爰片久久毛片 | 久久成年视频 | 91精品综合| 手机看片福利视频 | 中文字幕播放 | 视频一区在线 | 成年人免费在线视频网站 | 亚洲 欧美 91| 国产一区二区三区不卡免费观看 | 一区二区三区久久 | 国产素人在线观看 | 日本在线亚州精品视频在线 | 欧美日韩在线视频不卡一区二区三区 | 欧美一线不卡在线播放 | 色噜噜国产精品视频一区二区 | 国产精品久久人人做人人爽 | 欧美一级毛片大片免费播放 | 特级毛片aaaa级毛片免费 | 精品香蕉99久久久久网站 | 日本三级全黄三级a | 日本理论片午夜论片 | 岛国午夜精品视频在线观看 | 天天se天天cao综合网蜜芽 | 欧美高清视频手机在在线 | 亚洲国产精品一区二区首页 | 免费中文字幕一级毛片 | 日韩a毛片免费全部播放完整 | 欧美人成a视频www | 久操免费在线 | 国产欧美亚洲精品a | 网红主播大尺度精品福利视频 | 特级黄色毛片视频 | 一级黄色香蕉视频 | 亚洲线精品久久一区二区三区 | 日本精品视频一视频高清 | 波多野吉衣 免费一区 | 高清欧美性xxxx成熟 | 日本人成免费大片 | 欧美中文字幕在线看 |