我有一些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
,但它不起作用。我该怎么做?你能救我吗?
答案 0 :(得分:2)
为什么不在SetError(...)
组件上使用EditText
方法?
http://developer.android.com/reference/android/widget/TextView.html#setError%28java.lang.CharSequence%29
答案 1 :(得分:1)
EditText
使用Nine Patch Drawable
。您可以查看此link以修改现有的drawable。
希望它有所帮助。