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
- Los caracteres de cuenta con TextWatcher fallan en HTC longpress
- ¿Cómo puedo restringir mi entrada de EditText a algún carácter especial como barra invertida (/), tild (~) etc por el teclado suave en android programaticamente
- EditText, adjustPan, ScrollView problema en android
- Manera de ocultar softkeypad siempre no afectar las características de la edittext en android
- El teclado suave oculta la mitad de EditText
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
- Xamarin C # EditText InputType Contraseña
- Detener ScrollView de auto-desplazamiento a un EditText
- Android- ¿Cómo puedo mostrar la selección de texto en textview?
- ¿Cómo perder el foco de un edittext cuando el botón "hecho" en el teclado suave se presiona?
- ¿Cómo escuchar cualquier teclado en toda la aplicación?
- Creación de varias líneas Editar vista en android con codificación
- Android-Editext cambio después de cada cambio
- EditText no se actualiza después de que se cambió el texto en TextWatcher
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; }
}
- FragmentPagerAdapter notifyDataSetChanged no funciona
- Cómo agregar el oyente a autocompletetextview, android?