setHintTextColor () в EditText
у меня есть представление, в котором есть два текстовых поля, и пользователь может выбрать цвет текста из другого вида на одном экране (через диалоговое окно).
поэтому, когда пользователь меняет цвет через диалоговое окно, я меняю цвет EditText текст и его намек. Но когда появляется текст в EditText после этого пользователь выбирает другой цвет, а затем этот текст приходит в этот цвет. Но если я удалю весь этот текст, то цвет HintText заключается в том, что предыдущего цвет.
например, в настоящее время, если у меня есть красный цвет в текстовом поле, и пользователь выбирает зеленый цвет, поэтому текст находится в зеленом цвете. Но если я удалю этот текст, то текст подсказки будет красным, даже если я изменить оттенком цвета в коде. Эта проблема возникает только тогда, когда там есть какой-то текст. если он пуст и текст подсказки есть, то проблема не приходит.
8 ответов:
используйте это, чтобы изменить цвет подсказки. -
editText.setHintTextColor(getResources().getColor(R.color.white));решение вашей проблемы -
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.toString().length() <= 0) //check if length is equal to zero tv.setHintTextColor(getResources().getColor(R.color.white)); } });
Цвета По Умолчанию:
android:textColorHint="@android:color/holo_blue_dark"цветовой код:
android:textColorHint="#33b5e5"
внутри XML-файла макета мы можем изменить цвет подсказки.....
android:textColorHint="@android:color/*****"вы можете заменить * С цветом или цветовым кодом.
Кажется, что EditText применить hintTextColor только если текст пуст. Так что простое решение будет выглядеть так
Editable text = mEditText.getText(); mEditText.setText(null); mEditText.setHintTextColor(color); mEditText.setText(text);если у вас есть несколько полей, вы можете расширить EditText и написать метод, который выполняет эту логику и использовать этот метод вместо этого.
программно в Java - по крайней мере API v14+
exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));
можно назвать
editText.invalidate()после сброса цвета подсказки. Это может решить вашу проблему. На самом деле SDK обновляет цвет таким же образом.
Comments