J'ai une vue dans laquelle il y a deux zones de texte et l'utilisateur peut sélectionner la couleur du texte à partir d'une autre vue sur le même écran (via la boîte de dialogue).
Ainsi, lorsque l'utilisateur change de couleur via la boîte de dialogue, je change la couleur du EditText
texte et son indice. Mais lorsqu'il y a du texte disponible EditText
après que l'utilisateur sélectionne une autre couleur, alors ce texte arrive dans cette couleur. Mais si je supprime tout ce texte, la couleur de HintText est celle de la couleur précédente.
Par exemple, actuellement, si j'ai une couleur rouge dans la zone de texte et que l'utilisateur sélectionne la couleur verte, le texte est là en couleur verte. Mais si je supprime ce texte, le texte de l'indice apparaît en rouge même si je change la couleur de l'indice dans le code. Ce problème survient uniquement lorsqu'il y a du texte. s'il est vide et qu'il y a du texte d'indication, le problème ne vient pas.
la source
Réponses:
Utilisez ceci pour changer la couleur de l'indice. -
Solution à votre problème -
la source
Ajoutez simplement ceci dans votre
layout
pour leEditText
:la source
Couleurs par défaut:
Pour le code couleur:
la source
Fichier Xml de mise en page interne, nous pouvons changer la couleur de l'indice .....
vous pouvez remplacer * par couleur ou code couleur.
la source
Il semble que EditText applique le hintTextColor uniquement si le texte est vide. La solution si simple sera comme ça
Si vous avez plusieurs champs, vous pouvez étendre le EditText et écrire une méthode qui exécute cette logique et utiliser cette méthode à la place.
la source
Programmation en Java - Au moins API v14 +
exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));
la source
setHintTextColor(color)
ne fonctionne pas au cas où il y aurait du texte, MÊME si c'est""
.C'est comme la couleur d'indication par défaut, a fonctionné pour moi:
editText.setHintTextColor(Color.GRAY);
la source
Vous pouvez appeler
editText.invalidate()
après avoir réinitialisé la couleur de l'indice. Cela pourrait résoudre votre problème. En fait, le SDK met à jour la couleur de la même manière.la source