av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

Android實現高亮搜索功能的示例

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

整詞高亮:

Android實現高亮搜索功能的示例

分詞高亮:

Android實現高亮搜索功能的示例

下面貼上我封的方法

/** * 關鍵字高亮顯示 * text 原文 * keyWord 需要高亮顯示的關鍵字 * isCut 是否需要做分詞高亮展示 * isCut = true 關鍵字里的每一個字,只要有都會高亮 * isCut = false(默認) 只有整詞才會高亮 **/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、普通場景使用

//整詞搜索 isCut可不傳

stringToHighLight('原文', '關鍵字')

//分詞搜索

stringToHighLight('原文', '關鍵字',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實現高亮搜索功能的示例的詳細內容,更多關于Android實現高亮搜索的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 午夜99 | www.天天操.com | 毛色毛片免费看 | 国产精品福利网站 | 麻豆久久 | 亚洲成人精品一区 | 日日噜噜噜夜夜爽爽狠狠视频, | 亚洲精品国产第一综合99久久 | 欧美另类视频在线 | 亚洲精品中文字幕在线观看 | 91精品国产91久久久久久吃药 | 精品国产乱码久久久久久蜜臀 | 国产精品视频一区二区三区, | av免费网站在线观看 | 91在线影院 | 成人欧美一区二区三区视频xxx | 久久99久久99久久 | 在线免费激情视频 | 亚洲免费三级 | 香蕉一区二区 | 色婷婷影院 | 欧美区日韩区 | 综合二区| 国产久| 欧美中文字幕一区二区三区 | 欧美日韩不卡合集视频 | 瑟瑟免费视频 | 希岛爱理在线 | 久久国内| 成人免费视频观看 | 国产精品一区二区在线 | 91就要激情 | 九九久久免费视频 | 日本久久久一区二区三区 | 精品国产精品一区二区夜夜嗨 | 久久久九九九九 | 久久国产欧美日韩精品 | 伊人婷婷 | 日韩精品久久一区二区三区 | 999热精品视频 | 男人阁久久 |