我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”
Posted
技术标签:
【中文标题】我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”【英文标题】:I am trying an else if statement for validation email however it throws an error on else if(password.isEmpty) saying "else without if" 【发布时间】:2021-09-02 03:48:55 【问题描述】:@覆盖 受保护的无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main);
Tmail = findViewById(R.id.login_email);
Tpass = findViewById(R.id.login_password);
Tconfirmpass = findViewById(R.id.loginRetype_password);
Bar = findViewById(R.id.bar);
button = findViewById(R.id.signin);
mAuth = FirebaseAuth.getInstance();
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
String email, password, confirm;
email = Tmail.getEditText().getText().toString().trim();
password = Tpass.getEditText().getText().toString().trim();
confirm = Tconfirmpass.getEditText().getText().toString().trim();
if (email.isEmpty())
Tmail.getEditText().setError("Field should not be empty");
Tmail.requestFocus();
else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches());
Tmail.setError("Please enter a valid email Id");
Tmail.requestFocus();
else if (password.isEmpty())
Tpass.setError("Please enter password");
Tpass.requestFocus();
else if (password.length() < 6)
Tpass.setError("Password too short");
Tpass.requestFocus();
else if (!confirm.equals(password))
Tconfirmpass.setError("Password mismatch");
Tconfirmpass.requestFocus();
else mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>()
@Override
public void onComplete(@NonNull Task<AuthResult> task)
if (task.isSuccessful())
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "createUserWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
updateUI(user);
else
// If sign in fails, display a message to the user.
Log.w(TAG, "createUserWithEmail:failure", task.getException());
Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
updateUI(null);
);
);
【问题讨论】:
【参考方案1】:请正确格式化您的代码。
删除else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches());
行中的分号,您应该一切顺利。
【讨论】:
以上是关于我正在尝试使用 else if 语句来验证电子邮件,但是它会在 else if(password.isEmpty) 上抛出错误,说“else without if”的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能使用正则表达式来评估 if...else 语句 [重复]