SetHintTextColor() в EditText

У меня есть представление, в котором есть два текстовых поля, и пользователь может выбрать цвет текста из другого представления на том же экране (через диалоговое окно).

Итак, когда пользователь меняет цвет через диалоговое окно, я меняю цвет текста EditText и его подсказку. Но когда в EditText имеется некоторый текст, после этого пользователь выбирает другой цвет, тогда этот текст поступает в этот цвет. Но если я удалю весь этот текст, то цвет HintText будет соответствовать цвету предыдущего цвета.

Например, в настоящее время, если у меня есть красный цвет в текстовом поле, и пользователь выбирает зеленый цвет, чтобы текст был в зеленом цвете. Но если я удалю этот текст, тогда текст подсказки будет красным, даже если я измените цвет подсказки в коде. Эта проблема возникает только тогда, когда есть текст. если оно пустое и текст подсказки там, то проблема не наступает.

Ответ 1

Используйте это, чтобы изменить цвет подсказки. -

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));
    }
});

Ответ 2

Просто добавьте это в свой layout для EditText:

Android: textColorHint = "# FFFFFF"

Ответ 3

Цвета по умолчанию:

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

Код цвета:

android:textColorHint="#33b5e5"

Ответ 4

Внутренний макет Xml файла Мы можем изменить цвет подсказки.....

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

вы можете заменить * цветом или цветовым кодом.

Ответ 5

Кажется, что EditText применяет hintTextColor только в том случае, если текст пуст. Так простое решение будет таким:

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

Если у вас несколько полей, вы можете расширить EditText и написать метод, который выполняет эту логику и использует этот метод.

Ответ 6

Программно в Java - по крайней мере, API v14 +

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

Ответ 7

Это как цвет подсказки по умолчанию, работал у меня:

editText.setHintTextColor(Color.GRAY);