在EditText中的setHintTextColor()

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

所以当用户通过对话框改变颜色时,我正在改变EditText文本的颜色及其提示。 但是,当用户select其他颜色后,如果在EditText有某些文本可用,则该文本将以该颜色显示。 但是,如果我删除所有文本,那么HintText的颜色就是以前的颜色。

例如,目前,如果我在文本框中显示红色,并且用户select绿色,则文本以绿色显示。 但是,如果我删除该文本,则提示文本即使在代码中更改提示颜色时也会显示为红色。 这个问题只出现在那里有一些文字。 如果它是空白的,并提示文本,那么问题就没有到来。

使用此来更改提示颜色。 –

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

只需在EditTextlayout添加以下内容即可:

机器人:textColorHint = “#FFFFFF”

默认颜色:

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

对于颜色代码:

 android:textColorHint="#33b5e5" 

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

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

你可以用颜色或颜色代码来replace*

似乎EditText仅在文本为空时应用hintTextColor。 所以简单的解决scheme将是这样的

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

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

用Java编程 – 至lessAPI v14 +

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

这就像默认的提示颜色,为我工作:

editText.setHintTextColor(Color.GRAY);