2010-07-11 13 views
6

Para empezar, soy un desarrollador de C++/Qt que salta al desarrollo de Android/Java, así que no asuma que sé nada. :) Entonces, tengo una aplicación con un TextView contenido en un ScrollView. El texto contenido en TextView es el resultado de una consulta web desde mi aplicación de servidor web. Dependiendo de la consulta, el texto puede ser bastante largo. Quiero implementar una función de búsqueda en el texto donde el usuario ingresa una cadena de texto para buscar, y si se encuentra la cadena de texto, ScrollView desplazará la vista de texto para asegurar que la subcadena ingresada esté visible, y quiero que el texto esté resaltado. Creo que sé cómo resaltar la subcadena del texto, sé cómo decirle al ScrollView que vaya a un número de línea específico en el TextView, pero durante toda la vida, no puedo encontrar la manera de averiguar qué número de línea desea desplácese hasta para garantizar que mi subcadena sea visible. Es decir, quiero consultar la vista de texto para darme el número de línea en el que aparece primero la subcadena. Eventualmente, también quiero implementar un find que vaya a la próxima aparición de la subcadena. Algo así como la función Buscar en Firefox. Cualquier ayuda es muy apreciada. Gracias por adelantado.Desplazamiento de TextView en ScrollView a una subcadena de texto específica

Respuesta

8

Necesita encontrar la posición de la subcadena en el texto usted mismo, p. con String.indexOf(). Una vez que conozca esa posición, puede buscar la línea correcta en TextView utilizando la función Layout.getLineForOffset():

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