EditText中的setHintTextColor()

kar*_*edi 87 android android-edittext android-text-color

我有一个View,其中有两个文本框,用户可以在同一个屏幕上从另一个视图中选择文本颜色(通过对话框).

因此,当用户通过对话框更改颜色时,我正在更改EditText文本的颜色及其提示.但是当EditText用户选择其他颜色之后有一些文本可用时,那么该文本就会以该颜色出现.但是,如果我删除所有文本,那么HintText的颜色就是之前颜色的颜色.

例如,目前如果我在文本框中有红色,并且用户选择绿色,那么文本是绿色的.但是,如果我删除该文本,那么即使我在代码中更改提示颜色,提示文本也会显示为红色.只有当有一些文本时才会出现此问题.如果它是空白的并且提示文本在那里那么问题就不会到来.

Ana*_*van 318

只需将此添加到您layoutEditText:

机器人:textColorHint = "#FFFFFF"

  • 这应该如何解决OP的问题?问题是如何在EditText有一些文本时动态地改变提示颜色,我不知道这将如何解决它... (9认同)
  • 请仔细阅读问题.作者没有以适当的方式提出要求. (5认同)

Sun*_*hoo 55

使用此选项可更改提示颜色. -

editText.setHintTextColor(getResources().getColor(R.color.white));
Run Code Online (Sandbox Code Playgroud)

解决您的问题 -

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));
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 因为那个解决方案没有解决他的问题? (8认同)
  • 为什么这样一个复杂的解决方案可以在半个线上完成,如下所示anandc. (7认同)

kir*_*mar 22

默认颜色:

android:textColorHint="@android:color/holo_blue_dark"
Run Code Online (Sandbox Code Playgroud)

对于颜色代码:

android:textColorHint="#33b5e5"
Run Code Online (Sandbox Code Playgroud)


小智 15

内部布局Xml文件我们可以改变提示的颜色.....

android:textColorHint="@android:color/*****"
Run Code Online (Sandbox Code Playgroud)

你可以用颜色或颜色代码替换*.


dis*_*han 7

似乎EditText仅在文本为空时才应用hintTextColor.这么简单的解决方案就是这样的

Editable text = mEditText.getText();
mEditText.setText(null);
mEditText.setHintTextColor(color);
mEditText.setText(text);
Run Code Online (Sandbox Code Playgroud)

如果您有多个字段,则可以扩展EditText并编写一个执行此逻辑的方法,然后使用该方法.


Mic*_*ael 5

用Java编程-至少API v14 +

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