2011-12-15 18 views
6

Estoy creando una aplicación en la que estoy buscando una palabra Perticular en la vista de texto. Tengo un texto de edición, una vista de texto y un botón cuando ingreso una palabra en el texto de edición y Al hacer clic en el botón, me da la posición de la línea y la posición de la palabra en esa línea del archivo de texto completo ... Tengo un archivo de texto adjunto en la vista de texto ... ahora mi pregunta es ¿puedo destacar que toda la palabra que está allí en el texto? vista ingresada por el texto de edición. Si puedo, por favor, decirme cómo hacerlo ... si alguien tiene idea de ello.Higlight Palabra particular en vista de texto

Respuesta

7

También puede hacerlo mediante el uso de un Spannable, que es conveniente que conozca la posición de la palabra:

SpannableString res = new SpannableString(entireString); 
    res.setSpan(new ForegroundColorSpan(color), start, end, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); 

Dónde entireString es la cadena en w Que la palabra para resaltar existe, color es el color que desea que tenga el texto resaltado, start es la posición de la palabra y end es donde termina la palabra (inicio + palabra.length()).

Los res SpannableString continuación, se puede aplicar a su TextView como una cadena normal:

textView.setText(res); 

Nota: Si desea que el fondo del texto para obtener un color más que el propio texto, utilizan una BackgroundColorSpan en lugar de ForegroundColorSpan.

Editar: En su caso sería algo como esto (que tendrá que guardar el valor de lineatura y indexfound para cuando lea el texto completo):

for(String test="", int currentLine=0; test!=null; test=br2.readLine(), currentLine++){ 
    if(currentLine==linecount){ 
     SpannableString res = new SpannableString(test); 
     res.setSpan(new ForegroundColorSpan(0xFFFF0000), indexfound, indexfound+textword.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } 
    tv.append("\n"+" "+test); 
} 
+0

Todavía no me estoy despejando ¿Puedes actualizar mi código? Aquí está mi códigohttp: //pastebin.com/BCcHWAgS – Aamirkhan

+0

He editado mi respuesta para que quepa en tu código al menos. – Jave

+0

Gracias jave/.... – Aamirkhan

3

sí se puede destacar una parte de la vista de texto escribiendo HTML

String styledText = "This is <font color='red'>simple</font>."; 
textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE); 
0

uso Spannable para establecer texto en spannable puede setSpan por el cual se puede resaltar el texto que desea

Cuestiones relacionadas