How to change background color of edittext

JackTurky picture JackTurky · Jan 26, 2012 · Viewed 8.1k times · Source

i've some edittext and i'm checking the string inside it entered from users. when users clicks button at the end of dialog, if some edittexts aren't filled, i change background color of it and set a text in this way:

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

Now when users clicks again on a red edittext i want to change background color to white and delete text inside it ( FIELD REQUESTED ). I'm trying to do it in this way:

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

but nothing :( i try with onClickListener but it doesn't work. how can i do it? can you help me?

Answer

Fran&#231;ois BOURLIEUX picture François BOURLIEUX · Jan 26, 2012

Why you do not use the method SetError(...) on the EditText component ?
http://developer.android.com/reference/android/widget/TextView.html#setError%28java.lang.CharSequence%29