У меня есть представление, в котором есть два текстовых поля, и пользователь может выбрать цвет текста из другого представления на том же экране (через диалоговое окно).
Поэтому, когда пользователь меняет цвет через диалоговое окно, я меняю цвет EditText
текста и его подсказку. Но когда есть некоторый текст, доступный EditText
после того, как пользователь выбирает другой цвет, тогда этот текст будет в этом цвете. Но если я удалю весь этот текст, то цвет HintText будет таким же, как и предыдущий цвет.
Например, в настоящее время, если у меня красный цвет в текстовом поле, а пользователь выбирает зеленый цвет, текст отображается зеленым цветом. Но если я удалю этот текст, текст подсказки станет красным, даже если я изменю цвет подсказки в коде. Эта проблема возникает только тогда, когда там есть какой-то текст. если он пуст и есть подсказка, значит, проблема не возникает.
источник
Ответы:
Используйте это, чтобы изменить цвет подсказки. -
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)); } });
источник
Просто добавьте это в свой
layout
дляEditText
:источник
Цвета по умолчанию:
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));
источник
setHintTextColor(color)
не работает, если есть какой-то текст, ДАЖЕ, если он""
.Это похоже на цвет подсказки по умолчанию, сработавший для меня:
editText.setHintTextColor(Color.GRAY);
источник
Вы можете позвонить
editText.invalidate()
после того, как сбросите цвет подсказки. Это может решить вашу проблему. Собственно SDK обновляет цвет точно так же.источник