Как выполнить сводную проверку для следующего кода?
if((noValidate.getText().toString().length()>0) && (nameValidate.getText().toString().length()>0) &&
(conpassValidate.getText().toString() == passValidate.getText().toString()) && (email.matches(emailPattern))
&&(passValidate.getText().toString().length()>0))
{
Toast.makeText(this, "Your Information are saved succesfully ", Toast.LENGTH_SHORT).show();
Intent getStarted = new Intent(getApplicationContext(), FourthActivity.class);
startActivity(getStarted);
}
else
{
Toast.makeText(this, "Field Requiered",Toast.LENGTH_SHORT ).show();
}
}
здесь, когда я нажимаю на кнопку входа, это подтвердит поле и сделает его летнее. Если какое-либо поле пусто, оно покажет, что это поле обязательно. если я ввел данные во все поля, значит, это всегда показывает, что это поле обязательно. Я не знаю, где была проблема.
1 ответ
Решение
В Java нельзя сравнивать строки, используя оператор равенства (=):
conpassValidate.getText().toString() == passValidate.getText().toString()
Вместо этого используйте метод равенства:
conpassValidate.getText().toString().equals(passValidate.getText().toString())
Это был бы полный код:
if((noValidate.getText().toString().length()>0) &&
(nameValidate.getText().toString().length()>0) &&
(conpassValidate.getText().toString().equals(passValidate.getText().toString())) &&
(email.matches(emailPattern)) &&
(passValidate.getText().toString().length()>0)) {
Toast.makeText(this, "Your Information are saved succesfully ", Toast.LENGTH_SHORT).show();
Intent getStarted = new Intent(getApplicationContext(), FourthActivity.class);
startActivity(getStarted);
} else {
Toast.makeText(this, "Field Requiered",Toast.LENGTH_SHORT ).show();
}
Если это по-прежнему не работает, распечатайте подтверждение, используя этот код, иначе
String tag = "Your Tag";
Log.d(tag, "1: " + noValidate.getText().toString().length()>0 ? "YES":"NO");
Log.d(tag, "2: " + nameValidate.getText().toString().length()>0 ? "YES":"NO");
Log.d(tag, "3: " + conpassValidate.getText().toString().equals(passValidate.getText().toString()) ? "YES":"NO");
Log.d(tag, "4: " + email.matches(emailPattern) ? "YES":"NO");
Log.d(tag, "5: " + passValidate.getText().toString().length()>0 ? "YES":"NO");