Certains appareils fonctionnant sous Jelly Bean (4.2.1), mais pas tous, semblent ne pas avoir l'icône d'erreur en forme de point d'exclamation qui devrait apparaître sur un message d'erreur. TextView
(ou, plus communément, un EditText
) sur lequel une erreur a été définie par l'intermédiaire de TextView.setError(CharSequence error)
.
Le Galaxy Nexus ne semble pas avoir l'icône.
L'effet est que le statut d'erreur défini par setError
n'est apparente que lorsque le EditText
se concentre. Ce qui fait que setError(...)
beaucoup moins utile, car il est souvent utilisé pour encourager les utilisateurs à revenir sur le site en question. EditText
pour résoudre un problème. Par exemple, vous avez un écran de connexion standard avec des entrées de formulaire de nom d'utilisateur et de mot de passe qui sont validées lorsque l'utilisateur clique sur un bouton d'envoi. Un message d'erreur de validation défini sur le formulaire du nom d'utilisateur ne s'affichera pas à moins que l'utilisateur ne clique à nouveau sur ce formulaire - ce que l'icône d'erreur est censée l'encourager à faire !
Pour tester : (Il existe peut-être un EditText plus facilement accessible, mais celui-ci est très largement disponible)
- Ouvrir les paramètres
- Sélectionnez "Ajouter un compte" (dans "Comptes et synchronisation" sur les appareils plus anciens).
- Sélectionnez "Google" comme type de compte
- Sélectionnez "Existant" (après avoir cliqué sur "Suivant" et "S'identifier" sur les appareils plus anciens).
- Quitter l'"Email
EditText
vide, cliquez sur le bouton "Mot de passeEditText
À ce stade, un message d'erreur est envoyé à l'adresse "Email EditText
en disant qu'il ne peut pas être vierge. Sur les appareils qui ne présentent pas ce problème, l'icône d'erreur habituelle s'affiche, qui se transforme en message d'erreur complet lorsque l'icône d'erreur s'affiche. EditText
se concentre. Sur les Galaxy Nexus fonctionnant sous Jelly Bean, aucune icône n'est affichée et l'erreur n'est visible que lorsque la fonction "Email" est activée. EditText
a de nouveau la mise au point, et il n'y a toujours pas d'icône à ce moment-là.
Cela ressemble à un bogue, mais je voulais vérifier si d'autres personnes pouvaient le reproduire, avaient des idées sur ce que le problème pouvait être, et avaient une bonne solution de contournement.
Utilisation setError(CharSequence error, Drawable icon)
devrait probablement régler le problème, mais il serait bon de pouvoir utiliser le graphique d'erreur standard dans les différentes versions d'Android.