2

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

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但它不起作用。我该怎么做?你能帮帮我吗?

4

2 回答 2

2

为什么不使用组件SetError(...)上的方法EditText
http://developer.android.com/reference/android/widget/TextView.html#setError%28java.lang.CharSequence%29

于 2012-01-26T13:17:16.167 回答
1

EditText使用Nine Patch Drawable. 您可以检查此链接以修改现有的可绘制对象。

希望能帮助到你。

于 2012-03-26T11:14:51.773 回答