В этом случае я бы рекомендовал использовать ListView и иметь отдельную строку для каждого сегмента текста, который у вас есть.
Вы присваиваете TextWatcher для EditText, он имеет обратный вызов, который вызывается после каждой буквынабрал. В этом обратном вызове вы выполняете поиск введенной строки (возможно, асинхронно) и возвращаете позиции строк, которые содержат указанную подстроку.
Теперь прокрутите ListView до первого появления,Вы можете использовать его метод .smoothScrollToPosition ().
Что касается основных моментов, вы, вероятно, просматриваете тексты в строках, используя виджеты TextView.Вы можете установить текст, который просматривается внутри них, с помощью .setText (), которая также принимает Spannable / Spanned объекты.Это строки на стероидах, вы можете назначить интервалы стилей для разных областей строк.Таким образом, вы можете использовать это, например, для отображения найденной подстроки в другом цвете / фоне / и т. Д.
Или использовать HTML.Html.fromHtml () фактически обрабатывает теги html в предоставленных строках в объектах Spannable, поэтому с ними может быть проще работать:)