TextInput布局不清除错误消息

时间:2017-08-18 13:45:39

标签: android

文字字段错误在用户输入后无法清除。

如果我添加错误消息,它会位于编辑文本下方,一切看起来都不错。

这里我输入了第一个用户名,但错误仍然显示在textinput布局下面。

enter image description here

代码:

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

1 个答案:

答案 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{