setHintTextColor () в EditText



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



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



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

555   8  

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

просто добавьте это в ваш layout на EditText:

android: textColorHint= "#FFFFFF"

Цвета По Умолчанию:

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.setHintTextColor(Color.GRAY);

можно назвать editText.invalidate() после сброса цвета подсказки. Это может решить вашу проблему. На самом деле SDK обновляет цвет таким же образом.

Comments

    Ничего не найдено.