¿No se muestran los indicadores de error (para validaciones de formularios) para android 4.2?
Fondo
En Android, puede establecer una indicación de error para cualquier vista de EditarTexto cuando desee mostrar al usuario que lo que se escribe allí (o no) es incorrecto (llamado "validaciones de formulario").
Hay incluso una bonita biblioteca para esto ( aquí ), y muchos puestos aquí están disponibles de cómo usarlo.
- Mostrar mensaje de validación
- ¿Cómo validar edittext con números enteros en android?
- ¿Cómo puedo verificar que la imagen URI es válida en Android?
- ¿Cómo validar los valores de TextInput en reaccionar nativo?
- Añadir una anotación personalizada a Android Saripaar
Todo funcionó bien para mí hasta que lo he corrido en un nexo 4 con Android 4.2.
El problema
A veces, simplemente no mostrará los iconos de los errores. En tal caso, sólo cuando doy el foco de editText (que tiene el problema), muestra la burbuja, pero está vacía y no muestra el icono del error.
Además, en todos los casos, las burbujas están siempre vacías.
¿Por qué ocurre, y cómo puedo solucionarlo?
Nota: Utilizo la biblioteca de actionBarSherlock así que necesito utilizar sus temas o un tema que se basa en el suyo.
EDITAR:
Aquí hay algunas capturas de pantalla:
Android 4.2.2:
Android 2.3.5:
EDITAR:
Después de pensar que esto se resolvió por sí mismo, finalmente he descubierto cuando se produce este error: si el foco está en otro editText que no tiene un error, y el error de validación está en otro editText, el indicador isn ' T se muestra hasta que el editText obtiene el foco.
- Entrada de archivo HTML en Chrome para Android falta extensión y tipo mime
- Cómo validar un nombre de URL / sitio web en EditText en Android?
- Cómo convertir InputStream en origen?
- Permitir sólo charcters seleccionados basados en regex en un EditText
- Validación en Editar texto
- Validación en EditText permitir IP o web Url host
- Validación de correo electrónico en EditText - Android
- Cómo restringir el tiempo de entrada para edittext en android
Problema 1: El problema es el tema de la aplicación . Intente cambiar el tema a un tema más oscuro como:
<style name="AppBaseTheme" parent="android:Theme.Black">
Y debe resolver su problema. Encontré este problema similar antes y rectificé esto cambiando el tema. Pero no investigue mucho, pero siento que se trata de Android cuestión y la burbuja debe tratar de cambiar el color de texto de acuerdo con el tema.
Déjeme saber si soluciona su problema, o no.
Problema 2: La otra cuestión que está hablando para no tomar el foco, puede considerar el siguiente enlace: Truncamiento de texto y problema de enfoque .
—————————————- Actualizado Respuesta ——– ————————————-
Q1) What should I add to the theme configuration in order for it to always work, no matter what theme I use?
De acuerdo con mis conclusiones aquí hay algunos resultados:
[ Nota: Únicamente aplicable a dispositivos que ejecutan 3.0 y versiones posteriores]
Si su meta de compilación es:
-
Menos de 11, y luego usar
parent="android:Theme.Light" --> setError() message doesn't work or shows very faded text colour almost blending with color white parent="android:Theme" --> setError() message works
-
Mayor de 11, y luego usar
parent="android:Theme.Holo.Light" --> setError() message works parent="android:Theme.Holo" --> setError() message works
Dado que, su proyecto es compatible con dispositivos de menos de 11 API nivel y desea apoyar 4.0 y más también, su mejor opción sería ir e integrar HoloEverywhere en su proyecto que va a resolver su problema y usted será capaz de utilizar su ActionBarSherlock También, por compatibilidad, compruebe este SO Post .
Q2) What are the available configurations for the error indication UI ?
En su mayoría se puede personalizar drawables e iconos, pero dudo que pueda configurar su texto y fondo (si alguien sabe más puede señalar sobre esto)
Le sugeriría que compruebe este SO Post para obtener respuestas inmediatas.
Y para colocar el enfoque correcto, para cada verificación de validación, puede colocar este código:
EditText.setFocusableInTouchMode(true); EditText.requestFocus(); EditText.setError("My Error Text");
Déjeme saber para cualquier problema.
- Estiramiento Mapa de bits en una esquina específica
- La aplicación de Android se bloquea cuando se realizan algunos cambios en la base de datos