Resaltar texto en varios controles EditText simultáneamente
Tengo el problema siguiente: Estoy intentando destacar el texto en varios controles de EditText
simultáneamente llamando viewXYZ.setSelection(int, int)
, pero la selección es solamente visible en la visión enfocada.
¿Hay alguna forma de evitar esto, para resaltar el texto en un EditText
desenfocado? Tal vez por la sobrecarga de los métodos onDraw()
?
- OnClickListener no se puede resolver con un tipo
- Carga de archivos de Android establecer el tipo de contenido a la imagen
- Excepción al usar ksoap2-android
- Com.google.aaaal 400 Bad Request {"error": "invalid_grant"} al insertar una fila en bigquery
- Android: Java: Proguard: ¿Cómo verificar si mi jar (proyecto jar diferente) / apk se procesa correctamente? (Estoy pensando en hacer ingeniería inversa)
- Cómo llamar a Javascript __doPostBack de JSOUP
- Android scrollview quitar la luz azul
- Android - ¿Cómo configurar un diseño semi-transparente?
- Impresión de Android directamente a la impresora de red?
- Hilo de Android para un temporizador
- Eclipse: "La importación java.io no se puede resolver"
- Bloqueo de registro de GCM AsyncTask hasta que se produzca el tiempo de espera
- Oyente de ubicación en el servicio de fondo Android
Lo sé, pero su (por lo que sé?) La única manera de marcar texto en un control EditText.
EditText admite objetos Spannable
, por lo que puede aplicar resaltados a texto (por ejemplo, colores de fondo) usted mismo.
Este proyecto de ejemplo muestra un campo de búsqueda que aplica un color de fondo a un texto más grande basado en los resultados de búsqueda. La parte clave es el método searchFor()
:
private void searchFor(String text) { TextView prose=(TextView)findViewById(R.id.prose); Spannable raw=new SpannableString(prose.getText()); BackgroundColorSpan[] spans=raw.getSpans(0, raw.length(), BackgroundColorSpan.class); for (BackgroundColorSpan span : spans) { raw.removeSpan(span); } int index=TextUtils.indexOf(raw, text); while (index >= 0) { raw.setSpan(new BackgroundColorSpan(0xFF8B008B), index, index + text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); index=TextUtils.indexOf(raw, text, index + text.length()); } prose.setText(raw); }
Tenga en cuenta, sin embargo, que su "cadena de salida" probablemente debería ser un TextView
, no un EditText
. EditText
es para entrada, no para salida.
- Informar de la instalación de la aplicación Android de nuevo a facebook sin usar su api
- ¿Cómo puedo crear DialogFragment de ListActivity en Android?