Validación de la dirección de correo electrónico en Android en EditText

¿Cómo podemos realizar la Email Validation en edittext en android ? He revisado google y SO, pero no encontré una forma sencilla de validarlo.

 public static boolean isValidEmail(CharSequence target) { return (!TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches()); } 

Edit :: ¡Funcionará en Android 2.2+ en adelante! Editar: agregado perdido;

Para realizar validación de correo electrónico tenemos muchas maneras, pero la manera más simple y fácil son dos métodos .

1- Usando EditText(....).addTextChangedListener que sigue activando en cada entrada en un EditText box EditText, es decir, email_id no es válido o es válido

 /** * Email Validation ex:- tech@end.com */ final EditText emailValidate = (EditText)findViewById(R.id.textMessage); final TextView textView = (TextView)findViewById(R.id.text); String email = emailValidate.getText().toString().trim(); String emailPattern = "[a-zA-Z0-9._-]+@[az]+\\.+[az]+"; emailValidate .addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { if (email.matches(emailPattern) && s.length() > 0) { Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show(); // or textView.setText("valid email"); } else { Toast.makeText(getApplicationContext(),"Invalid email address",Toast.LENGTH_SHORT).show(); //or textView.setText("invalid email"); } } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // other stuffs } public void onTextChanged(CharSequence s, int start, int before, int count) { // other stuffs } }); 

2- Método más simple usando la condición if-else . Tome la cadena del cuadro Editar texto usando getText () y compare con el patrón proporcionado para el correo electrónico. Si el patrón no coincide o mapea, presione el botón para brindar un mensaje. No se disparará en cada entrada de un personaje en el cuadro Editar texto. ejemplo simple que se muestra a continuación.

 final EditText emailValidate = (EditText)findViewById(R.id.textMessage); final TextView textView = (TextView)findViewById(R.id.text); String email = emailValidate.getText().toString().trim(); String emailPattern = "[a-zA-Z0-9._-]+@[az]+\\.+[az]+"; // onClick of button perform this simplest code. if (email.matches(emailPattern)) { Toast.makeText(getApplicationContext(),"valid email address",Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(),"Invalid email address", Toast.LENGTH_SHORT).show(); } 

Use este método para validar su formato de correo electrónico. Pase el correo electrónico como una cadena, devuelve verdadero si el formato es correcto, de lo contrario es falso.

 /** * validate your email address format. Ex-akhi@mani.com */ public boolean emailValidator(String email) { Pattern pattern; Matcher matcher; final 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.compile(EMAIL_PATTERN); matcher = pattern.matcher(email); return matcher.matches(); } 

Es demasiado fácil:

Agregue este método para verificar si la dirección de correo electrónico es válida o no :

 private boolean isValidEmaillId(String email){ return Pattern.compile("^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@" + "((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?" + "[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\." + "([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?" + "[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" + "([a-zA-Z]+[\\w-]+\\.)+[a-zA-Z]{2,4})$").matcher(email).matches(); } 

Ahora mira con String of EditText :

 if(isValidEmaillId(edtEmailId.getText().toString().trim())){ Toast.makeText(getApplicationContext(), "Valid Email Address.", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getApplicationContext(), "InValid Email Address.", Toast.LENGTH_SHORT).show(); } 

Hecho

Prueba esto:

 if (!emailRegistration.matches("[a-zA-Z0-9._-]+@[az]+.[az]+")) { editTextEmail.setError("Invalid Email Address"); } 

Use este método para validar el CORREO ELECTRÓNICO: –

  public static boolean isEditTextContainEmail(EditText argEditText) { try { Pattern pattern = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); Matcher matcher = pattern.matcher(argEditText.getText()); return matcher.matches(); } catch (Exception e) { e.printStackTrace(); return false; } } 

Déjeme saber si usted tiene cualquier pregunta ?

 public static boolean isEmailValid(String email) { boolean isValid = false; String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[AZ]{2,4}$"; CharSequence inputStr = email; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(inputStr); if (matcher.matches()) { isValid = true; } return isValid; } 

Este es un método de muestra que creé para validar direcciones de correo electrónico, si el parámetro de cadena pasado es una dirección de correo electrónico válida, devuelve verdadero, de lo contrario se devuelve falso.

 private boolean validateEmailAddress(String emailAddress){ String expression="^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[AZ]{2,4}$"; CharSequence inputStr = emailAddress; Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(inputStr); return matcher.matches(); } 

prueba esto

 public static final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile( "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@" + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\." + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+" ); 

y en el texto de edición

 final String emailText = email.getText().toString(); EMAIL_ADDRESS_PATTERN.matcher(emailText).matches()