2011-05-02 13 views
11

Tengo un formulario de registro que debo validar antes de enviarlo. El formulario tiene los siguientes campos: nombre, correo electrónico, número de contacto y contraseña. Necesito el nombre para tener un valor, el correo electrónico para tener el formato correcto, el número de contacto debe ser un número de al menos 10 números y la contraseña debe tener al menos 6 caracteres.cómo hacer la validación de formulario en android

+0

busque en el sitio "validación de entrada" seleccione cualquiera de las miles de respuestas – Eric

+0

De acuerdo con @Shashank_Itmaster y para limitar al usuario a un número particular de caracteres en 'EditText' puede usar el atributo [android: maxLength] (http : //developer.android.com/reference/android/widget/TextView.html#attr_android: maxLength). – Mudassir

Respuesta

0

tiene dos posibilidades:

  • escuchar a cambios en el contenido y la ejecución de validación del campo de ese campo específico o
  • escuchar el clic botón de enviar y validar el contenido de todos los campos en enviar.

La validación de Else es la misma que en cualquier otra aplicación de Java: simplemente pruebe sus limitaciones.

BTW: su pregunta ya era answered en stackoverflow.

1

para la validación de edittext, use android: inputtype, android: maxLength.

Aparte de esto, puede utilizar expresiones regulares para la validación de la forma

9

probar esto

vUsername = etUsername.getText().toString(); 
vFirstname = etFirstname.getText().toString(); 
vEmail = etEmail.getText().toString(); 
vPwd = etPwd.getText().toString(); 
vCpwd = etCpwd.getText().toString(); 

if("".equalsIgnoreCase(vUsername) //vUsername.equalsIgnoreCase("") could lead to NPE 
    || "".equalsIgnoreCase(vFirstname) 
    || "".equalsIgnoreCase(vEmail) 
    || "".equalsIgnoreCase(vPwd) 
    || "".equalsIgnoreCase(vCpwd)) 
{ 
    Toast.makeText(userRegistration.this, "All Fields Required.", 
     Toast.LENGTH_SHORT).show(); 
} 
checkemail(vEmail); 
if(emailcheck==true) 
{ 
    // your code here 
} 

public void checkemail(String email) 
{ 
    Pattern pattern = Pattern.compile("[email protected]+\\.[a-z]+"); 
    Matcher matcher = pattern.matcher(email); 
    emailcheck = matcher.matches(); 
} 
5

Alternativamente, se puede utilizar un validation library para realizar validaciones en Android. Se controla mediante anotación y, por lo tanto, reduce un gran número de código de placa de caldera. Su caso de uso cuando se resuelve utilizando esta aplicación podría tener el siguiente aspecto:

@Required(order = 1) 
@Email(order = 2) 
private EditText emailEditText; 

@Password(order = 3) 
@TextRule(order = 4, minLength = 6, message = "Enter at least 6 characters.") 
private EditText passwordEditText; 

@ConfirmPassword(order = 5) 
private EditText confirmPasswordEditText; 

@Checked(order = 6, message = "You must agree to the terms.") 
private CheckBox iAgreeCheckBox; 

Hay una escasez de documentación, pero ahora el ejemplo de anotación en el home page debe empezar. También puede leer this blog sobre cómo crear reglas personalizadas en caso de que las reglas de stock no se ajusten a sus necesidades.

PD: Yo soy el autor de esta biblioteca.

+0

por alguna razón, el error en el primer texto de edición no se borra - ¿Alguna idea? – jramoyo

+0

@jramoyo, creo que esto está relacionado específicamente con la versión de Android y no con el marco. He encontrado comentarios similares anteriormente y descubrimos que no tiene nada que ver con el marco en sí. ¿Podría decirme por favor en qué versión de Android está probando esto? –

+0

He probado esto en 4.2, 4.1 y 2.3. Aparte de 4.2, el error desaparece cuando presiono la tecla de retroceso – jramoyo

Cuestiones relacionadas