【问题标题】:My validation all came in one我的验证都在一个
【发布时间】:2023-03-25 05:40:01
【问题描述】:

我在验证时遇到了一些问题。如何更改我的编码以便验证可以一次进行。我正在看很多教程,结果在这里。我要我的验证一一来。那么它应该是怎样的呢?提前致谢。

  private void RegisterAccount(String firstname, String lastname, String email, String password, String confirmpass)
{
    if (TextUtils.isEmpty(firstname))
    {
        Toast.makeText(Signup.this, "Enter your first name.", Toast.LENGTH_LONG).show();
    }

    if (TextUtils.isEmpty(lastname))
    {
        Toast.makeText(Signup.this, "Enter your last name.", Toast.LENGTH_LONG).show();
    }

    if (TextUtils.isEmpty(email))
    {
        Toast.makeText(Signup.this, "Enter your valid email address.", Toast.LENGTH_LONG).show();
    }

    if (TextUtils.isEmpty(password))
    {
        Toast.makeText(Signup.this, "Enter your password.", Toast.LENGTH_LONG).show();
    }

    if (TextUtils.isEmpty(confirmpass)) {
        Toast.makeText(Signup.this, "Please write your password again.", Toast.LENGTH_LONG).show();
    }

    if (password != confirmpass)
    {
        Toast.makeText(Signup.this, "Password do not match", Toast.LENGTH_LONG).show();
    }

    else
    {
        loadingBar.setTitle("Creating New Account");
        loadingBar.setMessage("Please wait while we are creating account for you.");
        loadingBar.show();

        mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>()
        {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task)
            {
                if(task.isSuccessful())
                {
                    Toast.makeText(Signup.this, "You have successfully signed up", Toast.LENGTH_SHORT).show();
                    Intent mainIntent = new Intent(Signup.this, MainActivity.class);
                    mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(mainIntent);
                    finish();
                }
                else
                {
                    Toast.makeText(Signup.this, "Error occured, please try again.", Toast.LENGTH_SHORT).show();
                }
                loadingBar.dismiss();
            }
        });
    }
}
}

【问题讨论】:

    标签: java android validation passwords


    【解决方案1】:

    你应该使用 else -if 而不是 if。

    if (TextUtils.isEmpty(firstname))
    {
        Toast.makeText(Signup.this, "Enter your first name.", Toast.LENGTH_LONG).show();
    } else if (TextUtils.isEmpty(lastname))
    {
        Toast.makeText(Signup.this, "Enter your last name.", Toast.LENGTH_LONG).show();
    } else if (TextUtils.isEmpty(email))
    {
        Toast.makeText(Signup.this, "Enter your valid email address.", Toast.LENGTH_LONG).show();
    }else if (TextUtils.isEmpty(password))
    {
        Toast.makeText(Signup.this, "Enter your password.", Toast.LENGTH_LONG).show();
    } else if (TextUtils.isEmpty(confirmpass)) {
        Toast.makeText(Signup.this, "Please write your password again.", Toast.LENGTH_LONG).show();
    }else if (password != confirmpass)
    {
        Toast.makeText(Signup.this, "Password do not match", Toast.LENGTH_LONG).show();
    }
    

    【讨论】:

    • 天哪!有用!谢谢!但是...按钮不能像往常一样工作:(
    • 通过使用'else if'它总是只执行一个语句,通过使用'if'它检查所有语句直到它得到正确的语句。
    • 密码和确认密码一样,但是弹出验证错误,为什么不能进入下一个界面?
    • 你应该检查 (!password.equals(confirmpass)) 而不是 (password != confirmpass)。
    • 天哪!有用!非常感谢您,先生。先生,我可以问你一个问题吗?
    【解决方案2】:
    private boolean validateName() {
        if (inputName_reg.getText().toString().trim().isEmpty() ) {
            inputLayoutName_reg.setError(getString(R.string.err_msg_name));
            requestFocus(inputName_reg);
            return false;
        } else{
            inputLayoutName_reg.setErrorEnabled(false);
        }
    
        return true;
    }
    

    您需要使用“else If”,而不仅仅是“if”,这样代码运行速度会更快。使用布尔值进行验证,它们更具动态性。希望对您有所帮助,问候!!

    【讨论】:

    • 谢谢!如何精确验证电子邮件?这意味着,如果用户在没有“@”的情况下为她的电子邮件地址插入 addajalil,它应该会显示错误。
    • 这种情况下可以指定输入的类型为:android:inputType="textEmailAddress" developer.android.com/training/keyboard-input/style
    • 很高兴为您提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    相关资源
    最近更新 更多