将EditText与EditText值进行比较

时间:2018-07-18 16:18:42

标签: java android

有人知道我的代码有什么问题吗,我正在尝试比较编辑文本字段中的输入,以确保在创建帐户之前它们的值相等。

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

3 个答案:

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