setHintTextColor () dans EditText

J’ai View dans lequel il y a deux zones de texte et l’utilisateur peut sélectionner la couleur du texte dans une autre vue sur le même écran (via la boîte de dialog).

Ainsi, lorsque l’utilisateur change de couleur via la boîte de dialog, je change de couleur du texte EditText et de son indice. Mais quand il y a du texte disponible dans EditText après que l’utilisateur ait sélectionné 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, si la couleur rouge est actuellement dans la zone de texte et que l’utilisateur sélectionne la couleur verte, le texte est de couleur verte. Mais si je supprime ce texte, alors le texte de conseil apparaît en rouge même si je change de couleur de conseil dans le code. Ce problème ne survient que lorsqu’il y a du texte à cet endroit. s’il est vide et que le texte de conseil est là, le problème ne vient pas.

Utilisez ceci pour changer la couleur de conseil. –

 editText.setHintTextColor(getResources().getColor(R.color.white)); 

Solution pour votre problème –

 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3){ //do something } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { //do something } @Override public void afterTextChanged(Editable arg0) { if(arg0.toSsortingng().length() <= 0) //check if length is equal to zero tv.setHintTextColor(getResources().getColor(R.color.white)); } }); 

Ajoutez simplement ceci dans votre layout en layout pour le EditText :

android: textColorHint = “# FFFFFF”

Couleurs par défaut:

 android:textColorHint="@android:color/holo_blue_dark" 

Pour le code couleur:

 android:textColorHint="#33b5e5" 

Fichier de mise en page interne Xml Nous pouvons changer la couleur de l’indice …..

 android:textColorHint="@android:color/*****" 

vous pouvez remplacer * par couleur ou code couleur.

Semble que EditText applique le hintTextColor uniquement si le texte est vide. Donc, solution simple sera comme ça

 Editable text = mEditText.getText(); mEditText.setText(null); mEditText.setHintTextColor(color); mEditText.setText(text); 

Si vous avez plusieurs champs, vous pouvez étendre EditText et écrire une méthode qui exécute cette logique et utiliser cette méthode à la place.

Par programme en Java – Au moins API v14 +

exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));

Ceci est comme couleur de conseil par défaut, a travaillé pour moi:

editText.setHintTextColor(Color.GRAY);

Vous pouvez appeler editText.invalidate() après avoir réinitialisé la couleur de conseil. Cela pourrait résoudre votre problème. En fait, le SDK met à jour la couleur de la même manière.