文字字段错误在用户输入后无法清除。
如果我添加错误消息,它会位于编辑文本下方,一切看起来都不错。
这里我输入了第一个用户名,但错误仍然显示在textinput布局下面。
代码:
if(!TextUtils.isEmpty(display_name) && !TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)){
mRegProgress.setTitle("Registering User");
mRegProgress.setMessage("Please wait....");
mRegProgress.setCanceledOnTouchOutside(false);
mRegProgress.show();
register_user(display_name, email, password);
}else{
if (mDisplayName.getEditText().getText().toString().length() == 0)
{
mDisplayName.setErrorEnabled(true);
mDisplayName.setError("Please Provide Your Name!");
}
else if ((!android.util.Patterns.EMAIL_ADDRESS.matcher(mEmail.getEditText().getText().toString()).matches()) && mEmail.getEditText().getText().toString().length() == 0)
{
mEmail.setErrorEnabled(true);
mEmail.setError("Please Provide Valid Email Address!");
}
else if (mPassword.getEditText().getText().toString().length() == 0)
{
mPassword.setErrorEnabled(true);
mPassword.setError("Please Provide Password!");
}
else{
if (mDisplayName.getEditText().getText().toString().length() > 0){
mDisplayName.setError(null);
mDisplayName.setErrorEnabled(false);
}
else if(mEmail.getEditText().getText().toString().length() > 0){
mEmail.setError(null);
mEmail.setErrorEnabled(false);
}
else if(mPassword.getEditText().getText().toString().length() == 0){
mPassword.setError(null);
mPassword.setErrorEnabled(false);
}
}
}
答案 0 :(得分:0)
您需要在获得其值后清除文本输入 - 当您确认它们具有值时。如果在执行第一个else之后它们没有值。
readAsArrayBuffer(f)
所以将你的逻辑移到其他地方:
if(!TextUtils.isEmpty(display_name) && !TextUtils.isEmpty(email) &&
!TextUtils.isEmpty(password)){
mRegProgress.setTitle("Registering User");
mRegProgress.setMessage("Please wait....");
mRegProgress.setCanceledOnTouchOutside(false);
mRegProgress.show();
register_user(display_name, email, password);
// This is where you reset your text inputs and other bits and pieces.
// If this is true nothing beyond here is executed!!
}else{