[android] EditText의 setHintTextColor ()

두 개의 텍스트 상자가있는보기가 있으며 사용자는 동일한 화면 (대화 상자를 통해)의 다른보기에서 텍스트 색상을 선택할 수 있습니다.

따라서 사용자가 대화 상자를 통해 색상을 변경할 때 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);