Как изменить цвет фона текста редактирования - PullRequest
2 голосов
/ 26 января 2012

У меня есть какой-то текст редактирования, и я проверяю строку внутри него, введенную пользователями.когда пользователи нажимают кнопку в конце диалогового окна, если некоторые текстовые правки не заполнены, я меняю его цвет фона и задаю текст следующим образом:

for(int i=0;i<fields.length;i++){
            if(fields[i].getText().toString().trim().length()<=0){
                redFields(fields[i]);
            }
        }
private void redFields(EditText t){
        t.setBackgroundColor(Color.RED);
        t.setText("FIELD REQUESTED!");
    }

Теперь, когда пользователи снова нажимают красный текстЯ хочу изменить цвет фона на белый и удалить текст внутри него (FIELD REQUESTED).Я пытаюсь сделать это следующим образом:

private void addFieldsListener(){
        for(EditText f : fields){
            final EditText ff = f;
            ff.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                public void onFocusChange(View v, boolean hasFocus) {
                    if(hasFocus && ff.getBackground().equals(Color.RED)){
                        ff.setBackgroundColor(Color.WHITE);
                    }
                }
            });
        }
    }

но ничего :( Я пытаюсь с onClickListener, но это не работает. Как я могу это сделать? Вы можете мне помочь?

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Почему вы не используете метод SetError(...) для компонента EditText?
http://developer.android.com/reference/android/widget/TextView.html#setError%28java.lang.CharSequence%29

1 голос
/ 26 марта 2012

EditText использует Nine Patch Drawable.Вы можете проверить эту ссылку , чтобы изменить существующий чертеж.

Надеюсь, это поможет.

...