【问题标题】:Show all setError messages in Android在 Android 中显示所有 setError 消息
【发布时间】:2017-12-28 05:16:18
【问题描述】:
if (!validateEmail(email) || (TextUtils.isEmpty(email))) {
        emailwrapper.setError("Invalid email");
    } else {
        emailwrapper.setError(null);
    }

    if (password.length() < 6 || (TextUtils.isEmpty(password))) {
        passwordwrapper.setError("Password must have at least 6 characters");
        return;

    } else {
        passwordwrapper.setError(null);
    }
    startActivity(new Intent(SignupActivity.this, MoreInfo.class));

如果两个文本输入布局都留空,我将如何使这两个错误消息都显示,并确保用户无法在仅正确填写密码的情况下继续进入 MoreInfo 类?

【问题讨论】:

    标签: android android-textinputlayout textinputlayout


    【解决方案1】:

    创建一个函数,该函数返回一个布尔值并根据该值进行相应的处理:

    private boolean areAllFieldsValid() {
        boolean returnValue = true;
        if (!validateEmail(email) || (TextUtils.isEmpty(email))) {
            emailwrapper.setError("Invalid email");
            returnValue = false;
        } else {
            emailwrapper.setError(null);
        }
    
        if (password.length() < 6 || (TextUtils.isEmpty(password))) {
            passwordwrapper.setError("Password must have at least 6 characters");
            returnValue = false;
        } else {
            passwordwrapper.setError(null);
        }
        return returnValue;
    }
    

    现在检查这个条件:

    if(areAllFieldsValid()){
        startActivity(new Intent(SignupActivity.this, MoreInfo.class));
    }
    

    【讨论】:

    • 非常感谢!
    • 乐于助人!!
    【解决方案2】:

    使用基于验证您的条件的布尔变量,然后导航。试试下面的示例

     boolean valid = true;
    
        if (!validateEmail(email) || (TextUtils.isEmpty(email))) {
                valid = false;
                emailwrapper.setError("Invalid email");
            } else {
                valid = true;
                emailwrapper.setError(null);
            }
    
            if (password.length() < 6 || (TextUtils.isEmpty(password))) {
                 valid = false;
                passwordwrapper.setError("Password must have at least 6 characters");
    
            } else {
                 valid = true;
                passwordwrapper.setError(null);
            }
    
            if(valid)
              startActivity(new Intent(SignupActivity.this, MoreInfo.class));
    

    【讨论】:

      【解决方案3】:

      创建布尔检查方法

             if(isValid()){
                      startActivity(new Intent(SignupActivity.this, MoreInfo.class));
                  }
      

      布尔方法

          private boolean isValid() {
          if (!validateEmail(email) || (TextUtils.isEmpty(email))) {
          emailwrapper.setError("Invalid email");
          return false;
          } else {
          emailwrapper.setError(null);
          emailwapper.setErrorEnabled(false);
          }
      
          if (password.length() < 6 || (TextUtils.isEmpty(password))) {
          passwordwrapper.setError("Password must have at least 6 characters");
          return false;
      
          } else {
          passwordwrapper.setError(null);
          passwordwapper.setErrorEnabled(false);
          }
      
          retun true;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        • 2019-07-04
        • 1970-01-01
        • 2013-03-20
        • 1970-01-01
        相关资源
        最近更新 更多