Android – Destacar una palabra en un TextView?

Tengo una database search query que busca en la base de datos una palabra introducida por el usuario y devuelve un Cursor .

En mi ListActivity , tengo un ListView que llevará a cabo los artículos (los artículos del cursor). El diseño de elementos ListView es básicamente un TextView . Quiero decir, el ListView será una lista de TextView .

Lo que quiero es resaltar el search term donde quiera que aparezca en TextView . Me refiero a resaltar: color diferente o color de fondo diferente o cualquier cosa lo hace diferente que el resto del texto.

es posible? ¿y cómo?

Actualizar:

 cursor = myDbHelper.search(term); //term: a word entered by the user. cursor.moveToFirst(); String[] columns = {cursor.getColumnName(1)}; int[] columnsLayouts = {R.id.item_title}; //item_title: the TextView holding the one raw ca = new SimpleCursorAdapter(this.getBaseContext(), R.layout.items_layout, cursor,columns , columnsLayouts); lv = getListView(); lv.setAdapter(ca); 

Para @Shailendra: El método search() devolverá algunos títulos. Quiero destacar las palabras en los títulos que coinciden con el term palabra. Espero que esto esté claro ahora.

Inserte el código HTML para el color, luego establezca esto en su texto.

me gusta

 origString = origString.replaceAll(textToHighlight,"<font color='red'>"+textToHighlight+"</font>"); Textview.setText(Html.fromHtml(origString)); 
 TextView textView = (TextView)findViewById(R.id.mytextview01); //use a loop to change text color Spannable WordtoSpan = new SpannableString("partial colored text"); WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(WordtoSpan); 

Los números 2 y 4 son índices de inicio / parada para el color del texto, en este ejemplo "rti" sería coloreado.

Así que básicamente sólo encontrar el índice inicial de su palabra de búsqueda en el título:

 int startIndex = titleText.indexOf(term); int stopIndex = startIndex + term.length(); 

Y luego reemplazar los números 2 y 4 con los índices y "texto de color parcial" con su cadena de título.

Fuente: https://stackoverflow.com/a/10279703/2160827

No lo he hecho pero esto parece prometedor:

 http://developer.android.com/reference/android/text/SpannableString.html http://developer.android.com/guide/topics/resources/string-resource.html 

Public final void setText (CharSequence text)

Desde: API Nivel 1 Establece el valor de cadena de la TextView. TextView no acepta el formato HTML, que puede hacer con cadenas de texto en archivos de recursos XML. Para diseñar sus cadenas, asigne los objetos android.text.style. * A SpannableString o vea la documentación Tipos de recursos disponibles para ver un ejemplo de configuración de texto con formato en el archivo de recursos XML.

http://developer.android.com/reference/android/widget/TextView.html

  • Programáticamente establecido izquierda dibujable en un TextView
  • ¿Cómo puedo cambiar el color del textView android.R.layout.simple_spinner_dropdown_item?
  • Adición dinámica de una vista de texto
  • Cómo configurar un oyente en el texto seleccionado en TextView
  • Cómo saber cuando la página siguiente / anterior ha cargado completamente en el efecto de curl de página por harism?
  • ¿Cómo arreglar la línea de base de la fuente en Android Lollipop cuando se trabaja con fuentes personalizadas de iconos?
  • Cómo agregar borde a un texto en textview android
  • TextView en el centro de la pantalla
  • Cómo iniciar la barra de acción contextual para ver el texto de forma programática con opions por defecto copiar y seleccionar todo?
  • Estilo conjunto de Android en el código
  • Cómo puedo obtener el texto en una línea específica en un TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.