Прокрутка TextView в ScrollView до определенной подстроки текста - PullRequest
6 голосов
/ 11 июля 2010

Для начала я разработчик на C ++ / Qt, который занимается разработкой Android / Java, поэтому, пожалуйста, не думайте, что я ничего не знаю.:) Итак, у меня есть приложение с TextView, содержащимся в ScrollView.Текст, содержащийся в TextView, является результатом веб-запроса из моего приложения веб-сервера.В зависимости от запроса текст может быть довольно длинным.Я хочу реализовать функцию поиска в тексте, где пользователь вводит некоторую текстовую строку для поиска, и если текстовая строка найдена, ScrollView прокручивает TextView, чтобы убедиться, что введенная подстрока видима, и я хочу, чтобы текст выделен.Я думаю, что я знаю, как выделить текстовую подстроку, я знаю, как сказать ScrollView, чтобы прокрутить до определенного номера строки в TextView, но я не могу понять, как узнать, какой номер строкивыделите, чтобы гарантировать, что моя подстрока видна.Т.е. я хочу запросить текстовое представление, чтобы дать мне номер строки, в которой сначала появляется подстрока.В конце концов, я также хочу реализовать находку next, которая переходит к следующему вхождению подстроки.Вроде как функция поиска в Firefox.Любая помощь очень ценится.Заранее спасибо.

1 Ответ

8 голосов
/ 19 октября 2010

Вам нужно найти положение подстроки в тексте самостоятельно, например, с помощью String.indexOf () .Как только вы узнаете эту позицию, вы можете найти правильную строку в TextView, используя функцию Layout.getLineForOffset () :

int offset=myString.indexOf("search string");
int line = myTextView.getLayout().getLineForOffset(offset);
...