如何更改edittext的背景颜色

时间:2012-01-26 13:04:09

标签: android android-edittext onfocus onlongclicklistener

我有一些edittext,我正在检查用户输入的字符串。当用户在对话框结束时单击按钮时,如果某些edittexts未填充,我会更改它的背景颜色并以这种方式设置文本:

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

现在,当用户再次点击红色edittext时,我想将背景颜色更改为白色并删除其中的文本(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 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

EditText使用Nine Patch Drawable。您可以查看此link以修改现有的drawable。

希望它有所帮助。