我正在创建我的自定义 EditText,它验证电子邮件和其他关于焦点丢失的内容,如果它无效,则重新关注。如果我只有一个 EditText,它可以正常工作,但是当我有多个 EditText 时,它会在我的 editText 框之间无限聚焦,因为它会尝试检查两者中的验证。这是我的示例代码。
public void init(){
this.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
final MyEditText ed = MyEditText.this;
//...............check require field validation
if(!hasFocus && isRequire){
if(ed.getText().toString().length()<=0){
String msg = "Require Field";
v.clearFocus();
setErrorMsg(ed,msg);
return;
}
}else if(ed.getText().toString().length()>0){
ed.setError(null);
}
}
}
private void setErrorMsg(final EditText ed,String msg){
if(errorMessage!=null && errorMessage.length()>0){
msg = errorMessage;
}
ed.setError(msg);
ed.post(new Runnable() {
public void run() {
ed.requestFocus();
}
});
}