有人知道我的代码有什么问题吗,我正在尝试比较编辑文本字段中的输入,以确保在创建帐户之前它们的值相等。
//compare the fields contents
if(editTextPassword.equals(editTextReEnterPassword)) {
//they are equal
//Creating a new user
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
finish();
startActivity(new Intent(getApplicationContext(), Home.class));
} else{
Toast.makeText(Register.this, "Could not register... please try again", Toast.LENGTH_SHORT).show();
}
}
});
}else {//they are not equal
Toast.makeText(Register.this, "Passwords do not match... please try again", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:2)
您必须获取编辑文本的文本值。
所以,实际上,您不能editText.equals()
您会做这样的事情。
String editTextPasswordString = editTextPassword.getText().toString().trim();
String editTextReEnterPasswordString = editTextReEnterPassword.getText().toString().trim();
if(editTextPasswordString.equals(editTextReEnterPasswordString)) {
//code
}
答案 1 :(得分:1)
首先,您需要使用 getText()。toString()方法从EditText获取值,如下所示:
String newPassword= editTextReEnterPassword.getText().toString();
有关该方法的更多信息,请检查以下链接: Get Value of EditText
此后,您需要将先前的字符串 editTextPassword 与创建的新字符串进行比较,这是方法 getText(), editTextReEnterPassword < / strong>。
因此,您的最终代码应如下所示:
String newPassword = editTextReEnterPassword.getText().toString();
String atualPassword = editTextPassword.getText().toString();
if(atualPassword.equals(newPassword))
{
...
}
else
{
...
}
答案 2 :(得分:0)
尝试:
if(editTextPassword.getText().toString().equals(editTextReEnterPassword.getText().toString()))
EditText
不是String