J'ai Vue dans laquelle il y a deux zone de texte et l'utilisateur peut sélectionner la couleur du texte à partir d'un autre point de vue sur le même écran grâce à la boîte de dialogue. Ainsi, lorsque l'utilisateur change de couleur via la boîte de dialogue je suis l'évolution de la couleur de EditText texte et de son indice. Mais quand il y a du texte est disponible dans l' EditText après que l'utilisateur de sélectionner d'autres couleurs alors que le texte est à venir dans cette couleur, mais si je retire tout ce que le texte, la couleur de HintText est venue couleur précédente. Par exemple maintenant, j'ai de la couleur rouge dans la zone de texte maintenant à l'utilisateur de sélectionner la couleur verte, afin que le texte est là, dans la couleur verte, mais si je le supprimer du texte, puis de l'indice de texte sont à venir dans le rouge même si je l' indicateur de modification de la couleur dans le code. Ce problème arrive seulement quand il y a du texte. si elle est vierge et l'indice de texte est-il alors le problème ne vient pas.
Réponses
Trop de publicités?
Anand Chavan
Points
1915
ajoutez addTextChangedListener
pour définir la couleur de l'indice
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
System.out.println(".....size..."+arg0.toString());
if(arg0.toString().length()<=0){
//set hinttextcolor
tv.setHintTextColor(getResources().getColor(R.color.white));
}
}
});
Akhil s
Points
61
dishan
Points
76
Il semble que EditText applique le hintTextColor uniquement si le texte est vide. Solution si 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.
Mike Milla
Points
168