Wykluczające się metody, gdzie jest błąd ? - walidacja maila i sprawdzanie pustych pol [Android]

0

Witam

Jestem początkujący i zdaje sobie sprawy, że poniższy kod mógłby być lepiej napisany i błąd, który tu występuje jest pewnie błahy ;) Proszę o wyrozumiałość

Otóż na początku miałem jedynie metodę, która sprawdzała czy pole formularza rejestracji nie są puste. Kiedy dodałem metodę sprawdzającą poprawność wprowadzonego maila, ta przestała się wywoływać.

 
public class ActivityRejestracja extends AppCompatActivity {
    private EditText emailEditText;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rejestracja);
        emailEditText = (EditText) findViewById(R.id.email);
 
        findViewById(R.id.BtnZarejestruj).setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View arg0) {
 
                final String email = emailEditText.getText().toString();
                if (!isValidEmail(email)) {
                    emailEditText.setError("Podaj adres e-mail");
                }
            }
        });
    }
 
    private boolean isValidEmail(String email) {
        String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
                + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
 
        Pattern pattern = Pattern.compile(EMAIL_PATTERN);
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();
    }
 
    public void rejestracja(View view) {
        EditText login, password, password1,email;
        login = (EditText) findViewById(R.id.UsernameRej);
        password = (EditText) findViewById(R.id.PasswordRej);
        password1 = (EditText) findViewById(R.id.PasswordRej1);
        email = (EditText) findViewById(R.id.email);
 
        if ((login.getText().toString().trim().equals(""))) {
            login.setError("Podaj login!");
            //Toast.makeText(getApplicationContext(), "Podaj login!", Toast.LENGTH_SHORT).show();
        }
        else if ((email.getText().toString().trim().equals(""))) {
            email.setError("Podaj adres e-mail!");
            //Toast.makeText(getApplicationContext(), "Podaj adres e-mail!", Toast.LENGTH_SHORT).show();
        } else if ((password.getText().toString().trim().equals(""))) {
            password.setError("Podaj hasło!");
            //Toast.makeText(getApplicationContext(), "Podaj hasło!", Toast.LENGTH_SHORT).show();
        } else if ((password1.getText().toString().trim().equals(""))) {
            password1.setError("Powtórz hasło!");
            //Toast.makeText(getApplicationContext(), "Powtórz hasło!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "Zarejestrowano pomyślnie!", Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(this, MainActivity.class);
            startActivity(intent);
        }
 
    }
}
1

Pewnie masz w xml do buttona zarejestruj przypisanego clicka, a w potem próbujesz listener jeszcze podpiąć.
A pisałem, nie rób tak tego :)

1

A gdzie wywołujesz metodę "rejestracja"? Sprawdzasz poprawność maila i obsługujesz jedynie sytuację, w której mail jest niepoprawny :)

0

Wszystko już się kompiluje ! nie napisze, że działa bo to prowizorka i patrząc w kod wygląda to tragicznie :) ale pożądany efekt otrzymałem.
Podpiąłem te if'y z metody "rejestracja" do metody "onClick"

1 użytkowników online, w tym zalogowanych: 0, gości: 1