Validación de Android Email en EditText

Hola a todos tengo un edittext y me gustaría escribir la validación de correo electrónico en mi Editttext esto es un código xml

<EditText android:id="@+id/mail" android:layout_width="match_parent" android:layout_height="48dp" android:layout_alignLeft="@+id/phone" android:layout_below="@+id/phone" android:layout_marginRight="33dp" android:layout_marginTop="10dp" android:background="@drawable/edit_background" android:ems="10" android:hint="E-Mail" android:inputType="textEmailAddress" android:paddingLeft="20dp" android:textColor="#7e7e7e" android:textColorHint="#7e7e7e" > </EditText> 

Y este es un código java

 emailInput = mail.getText().toString().trim(); emailPattern = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; if (emailInput.matches(emailPattern)) { Toast.makeText(getActivity(), "valid email address", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getActivity(), "Invalid email address", Toast.LENGTH_SHORT).show(); mail.setBackgroundResource(R.drawable.edit_red_line); } 

No puedo validation.the mensaje tostado es siempre "dirección de correo electrónico no válida" ¿qué estoy haciendo mal? Si alguien sabe la solución por favor ayúdame

Por qué no utilizar:

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

Como se sugiere aquí .

Estoy enviando la respuesta muy simple y fácil de la validación del email sin usar cualquier modelo de la secuencia.

1.Set en el oyente del tecleo en el botón ….

  button_resetPassword.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CharSequence temp_emilID=username.getText().toString();//here username is the your edittext object... if(!isValidEmail(temp_emilID)) { username.requestFocus(); username.setError("Enter Correct Mail_ID ..!!"); or Toast.makeText(getApplicationContext(), "Enter Correct Mail_ID", Toast.LENGTH_SHORT).show(); } else { correctMail.. //Your action... } }); 

2.call el isValidEmail () es decir.

  public final static boolean isValidEmail(CharSequence target) { if (TextUtils.isEmpty(target)) { return false; } else { return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); } } 

Espero que sea útil para usted …

Validación de Android Email La forma más sencilla

  String validemail= "[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}" + ")+"; String emal=email.getText().toString(); Matcher matcherObj = Pattern.compile(validemail).matcher(emal); if (matcherObj.matches()) { Toast.makeText(getApplicationContext(), "enter all details", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(),"please enter valid email",Toast.LENGTH_SHORT).show(); } 

Pruebe el siguiente código:

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

Esto funciona bien.

Private void isValidEmail (String email_id) {

  if (email_id == null){ checkTextView.setVisibility(View.VISIBLE); checkTextView.setText(LocaleController.getString("EnterValidEmail", R.string.EnterValidEmail)); return; } if (android.util.Patterns.EMAIL_ADDRESS.matcher(email_id).matches()) { checkTextView.setVisibility(View.GONE); } else { checkTextView.setVisibility(View.VISIBLE); checkTextView.setText(LocaleController.getString("EnterValidEmail", R.string.EnterValidEmail)); } 

Tomar un textView ex.checkTextView y validar cuando el correo electrónico es válido, entonces la vista de texto se ha ido de lo contrario mostrar el mensaje

Utilice esta función para validar el ID de correo electrónico:

  private boolean validateEmaillId(String emailId){ 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(emailId).matches(); } 

Intente abajo el código:

Basta con llamar al método como,

 if(emailValidator(mail.getText().toString())){ Toast.makeText(getActivity(), "valid email address", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getActivity(), "invalid email address", Toast.LENGTH_SHORT).show(); } public static boolean emailValidator(final String mailAddress) { 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(mailAddress); return matcher.matches(); } 

Android.util.Patterns.EMAIL_ADDRESS.matcher (target) .matches ()

Asigne una variable String para almacenar el valor de este EditText:

 emailInput = mail.getText().toString().trim(); 

Use setError en su EditText:

 if(!isValidEmail(emailInput)){ mail.setError("Invalid"); /*"Invalid Text" or something like getString(R.string.Invalid)*/ mail.requestFocus(); } 

Cree un método para comprobar el correo electrónico:

 private boolean isValidEmail(String emailInput) { 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(emailInput); return matcher.matches(); } 

Aquí hay un código completo para validaciones de inicio de sesión ……

 public class LoginActivity extends AppCompatActivity { private static final String TAG = "LoginActivity"; private static final int REQUEST_SIGNUP = 0; @Bind(R.id.input_email) EditText _emailText; @Bind(R.id.input_password) EditText _passwordText; @Bind(R.id.btn_login) Button _loginButton; @Bind(R.id.link_signup) TextView _signupLink; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ButterKnife.bind(this); _loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { login(); } }); _signupLink.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Start the Signup activity Intent intent = new Intent(getApplicationContext(), SignupActivity.class); startActivityForResult(intent, REQUEST_SIGNUP); finish(); overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out); } }); } public void login() { Log.d(TAG, "Login"); if (!validate()) { onLoginFailed(); return; } _loginButton.setEnabled(false); final ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this, R.style.AppTheme_Dark_Dialog); progressDialog.setIndeterminate(true); progressDialog.setMessage("Authenticating..."); progressDialog.show(); String email = _emailText.getText().toString(); String password = _passwordText.getText().toString(); // TODO: Implement your own authentication logic here. new android.os.Handler().postDelayed( new Runnable() { public void run() { // On complete call either onLoginSuccess or onLoginFailed onLoginSuccess(); // onLoginFailed(); progressDialog.dismiss(); } }, 3000); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_SIGNUP) { if (resultCode == RESULT_OK) { // TODO: Implement successful signup logic here // By default we just finish the Activity and log them in automatically this.finish(); } } } @Override public void onBackPressed() { // Disable going back to the MainActivity moveTaskToBack(true); } public void onLoginSuccess() { _loginButton.setEnabled(true); finish(); } public void onLoginFailed() { Toast.makeText(getBaseContext(), "Login failed", Toast.LENGTH_LONG).show(); _loginButton.setEnabled(true); } public boolean validate() { boolean valid = true; String email = _emailText.getText().toString(); String password = _passwordText.getText().toString(); if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) { _emailText.setError("enter a valid email address"); valid = false; } else { _emailText.setError(null); } if (password.isEmpty() || password.length() < 4 || password.length() > 10) { _passwordText.setError("between 4 and 10 alphanumeric characters"); valid = false; } else { _passwordText.setError(null); } return valid; } 

}

  • Mostrar el teclado para edittext cuando se inicia el fragmento
  • Accesibilidad de Android en el texto de edición con sugerencia
  • No obtener el botón "Ir" en el teclado de Android
  • Cómo establecer el color de borde para EditText
  • Cómo mostrar el teclado virtual automáticamente cuando EditText recibe el foco
  • Cómo abrir el teclado de Android en modo de voz de forma programática?
  • ¿Cómo usar la clase TextWatcher en Android?
  • Los valores de EditText en Android Fragment no se actualizan
  • Android: Redimensionar sólo partes de la vista con el teclado suave en la pantalla
  • Android EditText fuerza el teclado numérico pero permite caracteres no numéricos
  • Navegación (Siguiente) con EditText en un ListView / RecyclerView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.