Сохранить только выделенный жирным шрифтом текст в массиве строк в растянутой строке?


У меня есть длинные истории абзацев, которые содержат натянутые строки с главным образом обычным текстом и несколькими полужирными текстами (1 или 2 слова) здесь и там. Это в редакционном тексте. Я хочу иметь возможность выполнять поиск по этой растянутой строке в editText и сохранять каждый выделенный жирным шрифтом текст в строку. Но я не знаю, как это сделать. Есть предложения?

1 2

1 ответ:

Если вы используете SpannableString, Вы можете использовать метод getSpans:

StyleSpan[] spans = ss.getSpans(0, ss.length(), StyleSpan.class);
List<String> boldedWords = new ArrayList<String>();
for(StyleSpan span : spans) {
    if(span.getStyle() & Typeface.BOLD) {
        int start = ss.getSpanStart(span);
        int end = ss.getSpanEnd(span);
        boldedWords.add(ss.subSequence(start, end).toString());
    }
}