0

我有一个字符串,我必须在其中找到一个正在从最终用户搜索的单词并将其加粗以突出显示。

例子:

String : 地址必须有格式。地址可以是多行。

必需文本:地址必须具有格式。地址可以是多行。

4

1 回答 1

2

在经历了不同的方法之后。我编写了以下方法,它将跨越字符串中搜索到的文本。

如果您想多次跨越相同的文本,他们也可以使用此方法。

public CharSequence highlightTextString(String completeText, String searchText) {
    String temp = completeText.toLowerCase();
    SpannableStringBuilder highlightText = new SpannableStringBuilder(completeText);
    Pattern pattern = Pattern.compile(searchText.toLowerCase());
    Matcher matcher = pattern.matcher(temp);
    while (matcher.find()) {
        StyleSpan styleSpan = new StyleSpan(android.graphics.Typeface.BOLD);
        highlightText.setSpan(styleSpan, matcher.start(), matcher.end(), 0);
    }
    return highlightText;
}
于 2018-07-05T06:51:45.760 回答