validar usuario texto studio seleccionar salto que personalizar mascara linea edittext contraseña android android-edittext email-validation

usuario - validar email android studio



Validación de correo electrónico de Android en EditText (11)

Hola a todos, tengo un texto de edición y me gustaría escribir la validación de correo electrónico en mi Texto de edición. Este 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 codigo 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 validar. El mensaje de brindis es siempre "Dirección de correo electrónico no válida". ¿Qué estoy haciendo mal? si alguien sabe solución por favor ayúdame


¿Por qué no usar:

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

Como se sugiere here .


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; }

}


Asigne una variable de cadena 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(); }

Crea un método para revisar 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(); }


Estoy publicando una respuesta muy simple y fácil de validación de correo electrónico sin utilizar ningún patrón de cadena

1.Configurar el botón de escucha 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. llame al 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 te sea de utilidad ...


Intenta seguir el código:

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

Esto funciona bien.


Pruebe el siguiente código:

Simplemente llame al siguiente 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(); }


Tuve una consulta en el patrón de correo electrónico para más de una validación de ID de correo electrónico y solo para una ID de correo electrónico. Lo resolví utilizando:

public static final String patter_emails="^(//s*,?//s*[0-9a-za-z]([-.//w]*[0-9a-za-z])*@([0-9a-za-z][-//w]*[0-9a-za-z]//.)+[a-za-z]{2,9})+//s*$"; public static final String patter_email="^(//s*[0-9a-za-z]([-.//w]*[0-9a-za-z])*@([0-9a-za-z][-//w]*[0-9a-za-z]//.)+[a-za-z]{2,9})+//s*$";

Estos anteriores se utilizan para el patrón en Java y Android tanto.

verifica esto usando:

prueba de patrón: rubular.com


Utilice esta función para validar la identificación del 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(); }


Validación de correo electrónico de Android de la manera 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(); }


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)); }

Tome un textView ex.checkTextView y valide cuando el correo electrónico es válido; luego, la vista de texto desaparece; de ​​lo contrario, mostrará el mensaje.


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