проверка пароля в java
Использую код написанный на Java. Нужно проверить, совпадают ли введенные пароли. Написал для этого условие в onCreate, но при запуске приложение Toast вылезает совершенно на другом активити и не отображается в нужном.
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class register extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
init();
if(password.getText().toString() == secondPassword.getText().toString()){
System.out.println("5");
}
else {
Toast.makeText(getApplicationContext(),"Введенные пароли не совпадают", Toast.LENGTH_SHORT).show();
}
}
public EditText nick, date, email, password, secondPassword;
public Button go;
private void init(){
nick = findViewById(R.id.PersonNick);
date = findViewById(R.id.Date);
email = findViewById(R.id.EmailAddress);
password = findViewById(R.id.Password);
secondPassword = findViewById(R.id.SecondPassword);
go = findViewById(R.id.go);
}
}
Ответы (3 шт):
Попробуйте заменить вашу строчку
Toast.makeText(getApplicationContext(),"Введенные пароли не совпадают", Toast.LENGTH_SHORT).show();
На такую
Toast.makeText(register.this,"Введенные пароли не совпадают", Toast.LENGTH_SHORT).show();
Во-первых: Как сравнивать строки в Java? - там всё достаточно разжёвано. В общем случае следует использовать equals().
Во-вторых: в onCreate() вью элементы ещё даже не видны на экране, а тем более в них не введено никакого текста. Код обработки паролей следует переместить в слушатель кнопки подтверждения/перехода. Либо установить слушатель фокуса на EditText и проверять при потере, то есть когда юзер переходит к другому элементу. Либо, если требуется проверять на лету по мере ввода, установить слушатель ввода на EditText и проверку поместить туда.
Для этого необходимо инициализировать переменную. Делал я это сразу в слушателе нажатий на кнопку
private void init(){
nick = findViewById(R.id.PersonNick);
date = findViewById(R.id.Date);
email = findViewById(R.id.EmailAddress);
password = findViewById(R.id.Password);
secondPassword = findViewById(R.id.SecondPassword);
go = findViewById(R.id.go);
textPrivacyPolicy = findViewById(R.id.textPrivacyPolicy);
}
public void conreg(View view){
тут инициализируем переменные.
String firstPass = password.getText().toString();
String secondPass = secondPassword.getText().toString();
String username = nick.getText().toString();
String userDate = date.getText().toString();
String mailpochta = email.getText().toString();
// проверка полей на заполненность
if (username.length() == 0 || userDate.length() == 0 || mailpochta.length() == 0){
Toast.makeText(getApplicationContext(),"Поля не могут быть пустыми", Toast.LENGTH_SHORT).show();
}else{
if (firstPass.equals(secondPass) & firstPass.length() != 0 & secondPass.length() != 0){ // проверка паролей на соответствии друг с другом и наличие его
// data get database
}else {
Toast.makeText(getApplicationContext(),"Введенные пароли не совпадают", Toast.LENGTH_SHORT).show();
}
}
}