首页 > 解决方案 > 比较 EditTexts 表示它们不相等

问题描述

我从布局中获取文本:

<EditText
    android:id="@+id/editPassword"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="24dp"
    android:ems="10"
    android:hint="Contraseña"
    android:inputType="textPassword"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editNombre" />

<EditText
    android:id="@+id/ConfirmPassword"
    android:layout_width="wrap_content"
    ... Same with diferent id

在活动 y 中检查以在 editText 上使用相同的密码,我放了一个 Toast 来向我显示变量 vPassword 和 vCPassword 并且 Toast 显示了这个:

在此处输入图像描述

活动代码

vDatabase = FirebaseDatabase.getInstance().getReference();
    vNombre = (EditText) findViewById(R.id.editNombre);
    vPassword = (EditText) findViewById(R.id.editPassword);
    vCorreo = (EditText) findViewById(R.id.editCorreo);
    vCPassword = (EditText) findViewById(R.id.ConfirmPassword);
    vRegistrarse = (Button) findViewById(R.id.Registrarme);

    vRegistrarse.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            nombre = vNombre.getText().toString();
            password = vPassword.getText().toString();
            correo = vCorreo.getText().toString();
            cpassword = vCPassword.getText().toString();


            if(!nombre.isEmpty() && !password.isEmpty() && !correo.isEmpty() && vPassword.equals(vCPassword)){
                if(password.length() >= 6) {

                        registerUser();
                }
                else {
                    Toast.makeText(MainActivity.this, "La contraseña debe tener al menos 6 dígitos y ser igual", Toast.LENGTH_SHORT).show();
                }
            }
            else{
                Toast.makeText(MainActivity.this, "Alguno de los campos esta vacio"+vPassword+vCPassword, Toast.LENGTH_SHORT).show();
            }

        }
    });

标签: javaandroid

解决方案


您正在尝试比较 edittext 而不是它的值。所以改变你的 if 条件

改变这个:

vPassword.equals(vCPassword)

进入这个:

password.equals(cpassword)

推荐阅读