2012-08-02 12 views

Respuesta

60

El efecto emergente que ha mostrado en su pantalla se puede lograr usando Android incorporado setError(String) método de EditText widgets.

Además, puede aprovechar el poder de las anotaciones utilizando la biblioteca Android Saripaar que he creado.

primero Añadir la biblioteca:

compile 'com.mobsandgeeks:android-saripaar:2.0.2' 

La biblioteca es muy sencillo de utilizar. En su actividad, anote las referencias View que le gustaría validar como en el siguiente ejemplo.

@Order(1) 
private EditText fieldEditText; 

@Order(2) 
@Checked(message = "You must agree to the terms.") 
private CheckBox iAgreeCheckBox; 

@Order(3) 
@Length(min = 3, message = "Enter atleast 3 characters.") 
@Pattern(regex = "[A-Za-z]+", message = "Should contain only alphabets") 
private TextView regexTextView; 

@Order(4) 
@Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS) 
private EditText passwordEditText; 

@Order(5) 
@ConfirmPassword 
private EditText confirmPasswordEditText; 

El atributo order especifica el orden en que los campos tienen que ser validados.

En su método onCreate() instanciar un nuevo objeto Validator. y llame al validator.validate() dentro de cualquiera de sus oyentes de eventos.

Recibirá devoluciones de llamada en los métodos onSuccess y onFailure del ValidationListener.

Si desea mostrar una ventana emergente como se muestra en la imagen de arriba a continuación, haga lo siguiente,

public void onValidationFailed(View failedView, Rule<?> failedRule) { 
    if (failedView instanceof Checkable) { 
     Toast.makeText(this, failedRule.getFailureMessage(), Toast.LENGTH_SHORT).show(); 
    } else if (failedView instanceof TextView) { 
     TextView view = (TextView) failedView; 
     view.requestFocus(); 
     view.setError(failedRule.getFailureMessage()); 
    } 
} 

Espero que ayude.

+2

Android Saripaar es definitivamente el camino a seguir. : D –

+0

¿Qué ocurre con la validación del número móvil? –

+0

@RegEx Anotación: use expresiones regulares, no hay un formato estándar para números telefónicos. –

4

implementar la validación para Android en el interior únicamente tres pasos. Los desarrolladores deben concentrarse en su increíble código, y dejar que la biblioteca haga el texto repetitivo.

Tres tipo de tipo de validación:

  • TEXT_INPUT_LAYOUT
  • UNDERLABEL
  • COLORACIÓN
  • BÁSICO

Te estoy dando ejemplo de validación UNDERLABEL.

paso para lograr la validación en android:

Declarar estilo de validación:

AwesomeValidation mAwesomeValidation = new AwesomeValidation(UNDERLABEL); 
mAwesomeValidation.setContext(this); 

Añadir validaciones;

mAwesomeValidation.addValidation(activity, R.id.edt_name, “[a-zA-Z\\s]+”, R.string.err_name); 
mAwesomeValidation.addValidation(activity, R.id.edt_tel, RegexTemplate.TELEPHONE, R.string.err_tel); 

Establezca un punto cuando se debe activar la validación.

findViewById(R.id.btn_done).setOnClickListener(new View.OnClickListener() 
    @Override 
    public void onClick(View v) 
    mAwesomeValidation.validate(); 
); 

Eso es todo, y aquí es full source code

validation for android - dasnic.

+3

¿por qué crees que responde a su pregunta? Pidió que se muestre el método de presentación específico para el mensaje de error de validación. –

+0

¿Puede decirme cómo usar esta Awesome Validation Library en el caso de CONFIRM PASSWORD Field? –

+0

@SriyankSiddhartha para validar el campo de confirmación, solo tiene que hacer 'mAwesomeValidation.addValidation (activity, R.idt_password_confirmation, R.id.edt_password, R.string.err_password_confirmation);' Consulte la página de github repo para obtener más información. –

Cuestiones relacionadas