두 개의 텍스트 상자가있는보기가 있으며 사용자는 동일한 화면 (대화 상자를 통해)의 다른보기에서 텍스트 색상을 선택할 수 있습니다.
따라서 사용자가 대화 상자를 통해 색상을 변경할 때 EditText
텍스트의 색상 과 힌트를 변경합니다 . 그러나 EditText
사용자가 다른 색상을 선택한 후 사용할 수있는 텍스트가 있으면 해당 텍스트가 해당 색상으로 표시됩니다. 그러나 해당 텍스트를 모두 제거하면 HintText 의 색상은 이전 색상의 색상입니다.
예를 들어 현재 텍스트 상자에 빨간색이 있고 사용자가 녹색을 선택하면 텍스트가 녹색으로 표시됩니다. 그러나 해당 텍스트를 제거하면 코드에서 힌트 색상 을 변경 하더라도 힌트 텍스트가 빨간색으로 표시 됩니다. 이 문제는 텍스트가있을 때만 발생합니다. 비어 있고 힌트 텍스트가 있으면 문제가 발생하지 않습니다.
답변
힌트 색상을 변경할 때 사용합니다. –
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);