kar*_*edi 87 android android-edittext android-text-color
我有一个View,其中有两个文本框,用户可以在同一个屏幕上从另一个视图中选择文本颜色(通过对话框).
因此,当用户通过对话框更改颜色时,我正在更改EditText
文本的颜色及其提示.但是当EditText
用户选择其他颜色之后有一些文本可用时,那么该文本就会以该颜色出现.但是,如果我删除所有文本,那么HintText的颜色就是之前颜色的颜色.
例如,目前如果我在文本框中有红色,并且用户选择绿色,那么文本是绿色的.但是,如果我删除该文本,那么即使我在代码中更改提示颜色,提示文本也会显示为红色.只有当有一些文本时才会出现此问题.如果它是空白的并且提示文本在那里那么问题就不会到来.
Ana*_*van 318
只需将此添加到您layout
的EditText
:
机器人:textColorHint = "#FFFFFF"
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)
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)
你可以用颜色或颜色代码替换*.
似乎EditText仅在文本为空时才应用hintTextColor.这么简单的解决方案就是这样的
Editable text = mEditText.getText();
mEditText.setText(null);
mEditText.setHintTextColor(color);
mEditText.setText(text);
Run Code Online (Sandbox Code Playgroud)
如果您有多个字段,则可以扩展EditText并编写一个执行此逻辑的方法,然后使用该方法.
用Java编程-至少API v14 +
exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));