Как Bold (Span) искомый текст в строке динамически? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть строка, в которой мне нужно найти слово, которое искали у конечного пользователя, и выделить его жирным шрифтом.

Пример:

Строка: адрес должен иметь формат. Адрес может быть из нескольких строк.

Обязательный текст: Адрес должен иметь формат. Адрес может состоять из нескольких строк.

1 Ответ

0 голосов
/ 05 июля 2018

После прохождения разных подходов. Я написал следующий метод, который будет охватывать искомый текст в строке.

Если вы хотите охватить один и тот же текст несколько раз, они также могут использовать этот метод.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...