Ich habe eine Anmeldung Aktivität und versuchen, die Felder auf zu validieren REGISTRIEREN BUTTON Klicken Sie auf. Ich benutze setError()
Methode, um die Fehlermeldung zu zeigen Seine Arbeit Aber gibt es ein Problem Seine Arbeit auf dem spezifischen Gebiet, das zu dieser Zeit konzentriert hat. Was ich will, sollte es aber alle Felder überprüfen und Meldung bestätigen sollten alle Felder auf einmal ODER Von Top bis zum Ende eines von 1 angezeigt, wenn mehr als 1 Felder Invalidier sindValidierung am EditText funktioniert nicht richtig
Was ich bisher habe, ist Code of SIGN UP BUTTON
if (mSignUpBtn != null) {
mSignUpBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
assert unameEditText != null;
final String uName = unameEditText.getText().toString();
if (!isValidName(uName)) {
unameEditText.setVisibility(View.VISIBLE);
unameEditText.setError("Invalid Username, Username must be A-Z,a-z,_,0-9 Can't contain Space");
}
assert emailEditText != null;
final String email = emailEditText.getText().toString();
if (!isValidEmail(email)) {
unameEditText.setVisibility(View.VISIBLE);
emailEditText.setError("Invalid Email");
}
assert passEditText != null;
final String pass = passEditText.getText().toString();
if (!isValidPassword(pass)) {
unameEditText.setVisibility(View.VISIBLE);
passEditText.setError("Invalid Password");
}
}
});
}
Code of Validation Methoden
private boolean isValidName(String uName) {
String NAME_PATTERN = "[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789_]*";
Pattern pattern = Pattern.compile(NAME_PATTERN);
Matcher matcher = pattern.matcher(uName);
return matcher.matches();
}
// validating email id
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();
}
// validating password with retype password
private boolean isValidPassword(String pass) {
return (pass.length() > 6);
}
Alles ist in Ordnung, außer dass es auf alle Felder im Auftrag OR durch alle einmal eher bestätigen sollte, als nur die eine
fokussiertHier ist Bild, das zeigt, ob USERNAME
Field hat Räume in ihm Nachricht seine zeigt Fehler, aber nicht auf E-Mail und Passwort Felder zeigt etwas, weil diejenigen Fokus
Was soll ich es tun beheben nicht sind? Dank
Verwendung dieses Muster 'String REGx = "^ [\\ p {L} .'-] + $";' – sushildlh
Muster Ich denke, richtig, weil, wenn E-Mail-Feld auf Fokus ist es Fehler zeigen auf dieses Feld, wenn es Anti-Muster-Zeichen hat –