Android Form Validator Preview

Jeudi 12 juillet 2012, 20:47

Voici une Library de ma composition servant à gérer, comme sous le Framework Zend PHP, la validation des formulaires. Les classes ont été calquées pour s’utiliser comme sous Zend et, de plus, elle permet facilement de créer de nouveaux validateurs.

La library est encore en phase de développement. Pour les impatients, vous la trouverez ici. Aucun JAR n’est disponible pour l’instant car j’utilise les fichiers ressource Android.

Utilisez donc mon projet comme un « Library Project » ou importez directement les sources dedans tant que vous indiquez la provenance. Dans les sources, vous trouverez une Activity d’exemple vous montrant comment vous servir des différents validateurs disponibles pour l’instant à savoir :

  • ConfirmValidator : Permet de vérifier si le champ de confirmation est valide (ex : confirmation mot de passe)
  • EmailValidator : Permet de vérifier si l’email saisit est valide.
  • NotEmptyValidator : Permet de savoir si un champ a bien été saisit
  • OrTwoFieldsEmptyValidator : Permet de vérifier si, entre deux champs, au moins l’un des deux a été saisit.
  • UrlValidator : Permet de savoir si un champ URL a été correctement saisit.

Chaque Validator est rattaché à un objet Validate propre. Ce champ validate permet de créer des chaines de validation en sachant que le premier Validator entré sera le premier testé.

EditText field1;

// Création du Validate pour notre champ1 :
Validate valField1 = new Validate(field1);

// Ajout de nos différents validateurs du premier à tester au dernier
valField1.addValidator(new EmailValidator(mContext));
valField1.addValidator(new NotEmptyValidator(mContext));

Certains Validators sont particuliers et s’utilisent sur deux champs en même temps (pour le ConfirmValidator et le OrTwoFieldsEmptyValidator).

EditText password;
EditText confirmPassword;

ConfirmValidator confirmFields = new ConfirmValidator(password, confirmPassword);

Tous les Objets Validates créés sont rajoutés à un Form. Et c’est ce Form qui permettra de vérifier si votre formulaire est valide.

Form form = new Form();
form.addValidates(valField1);
form.addValidates(confirmFields);

Pour vérifier si votre formulaire est valide. Il suffit juste de faire un if tout simple :

if(form.validate())
{
    // Traitement de votre formulaire
}

Et, en cas d’erreur, des bulles apparaissent sur les champs invalides comme ceci :

]1 Les bulles sont disponibles en natif sur Android

Comme vous le voyez, son utilisation reste très simple. Ensuite, sachez que vous pouvez créer facilement de nouveaux Validators pour vos formulaires. Pour ce faire, vous avez juste à créer une classe d’héritant de Validator :

/**
 * Classe servant à créer de nouveaux Validators
 * @author throrin19
 *
 */
public abstract class Validator {

    protected Context mContext;

    public Validator(Context c){
        mContext = c;
    }

    /**
     * Permet de vérifier si la valeur passée en paramètre est valide ou non.
     * @param value
     *         {@link Object} : la valeur à valider
     * @return
     *         boolean : true si valide, false sinon.
     */
    public abstract boolean isValid(Object value);

    /**
     * Permet de récupérer le message d'erreur correspondant au validateur.
     * @return
     *         String : le message d'erreur
     */
    public abstract String getMessage();
} 

Pour les intéressés par cette library, elle est déjà disponible sur mon Github en suivant ce lien.

Throrïn
A propos de l'auteur
Benjamin Besse

Je suis Analyste Développeur chez Goomeo et je suis passioné par tout ce qui touche aux technologies du Web. J'ai commencé par apprendre l'utilisation du Framework Zend et j'ai continué naturellement via Android. Le tout seulement avec les bases acquises en DUT et Licence professionnelle Informatique.

Laisser un commentaire

Commentaires

Jusqu’à quelle version d’Android est compatible cette Library ?

Elle est compatible toute version à partir de la 2.1. Elle est peut-être compatible 1.5-1.6 mais non testé dessus.