Прокрутка TextView в ScrollView до определенной подстроки текста

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


person Steven Packard    schedule 11.07.2010    source источник


Ответы (1)


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

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