Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formulaire interactif

android studio

Sujet résolu
Anonyme
16 janvier 2017 à 14:57:47

Salut,

Dans ce formulaire l'on entre ses identifiants et ils sont enregistrés en base de données. Lorsque l'utilisateur clique sur "register", si un autre utilisateur possède déjà la même adresse émail l'application lui envoie un "Toast" sinon il est enregistré avec succès.

Mon problème est le suivant :

Avant de cliquer sur "register" ,j'ai envie que lorsque l'utilisateur finit de remplir un champs l'application fait ceci :

champs username par exemple : au moins 4 caractères est requis, nom déjà utilisé ... sinon username correte...

champs émail par exemple : émail non valide( c'est a dire syntaxe non-respecté), émail déjà utilisé ... sinon émail correcte...

et pour le champs téléphone : l'application doit vérifier que le numéro de téléphone correspond  respecte les critères téléphonique du pays(exemple au cameroun c'est +237 655555555)

s'il vous plait quelqu'un a une idée de comment s'y prendre pour résoudre le problème ?

  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2017 à 15:25:05

Bonjour à vous,

Je n'aime pas donner la solution complète sans vous amener à réfléchir au problème. Voici donc une piste de solution qui devrait vous guider.

Regardons d'abord le pseudocode pour résoudre votre problème :

1. Détecter quand le champ de type EditText perd le focus

2. Appeler la fonction de validation

3. Envoyer un message de confirmation

Détecter quand le champ de type EditText perd le focus

EditText txtEdit =(EditText) findViewById(R.id.edittxt); 

txtEdit.setOnFocusChangeListener(newOnFocusChangeListener(){
     @Override
     publicvoid onFocusChange(View v,boolean hasFocus){
          if(!hasFocus){
              // code to execute when EditText loses focus
              //(APPELER LA FONCTION DE VALIDATION)
          }
     }
});


 


Appeler la fonction de validation 

String username = editTextUsername.getText().toString();

ValidateUsername(username);

...

public boolean ValidateUsername(String username) {

       boolean validate = true;

    //Valider le format des données grâce aux Regex (minimum 4 caractères, dont une majuscule et un nombre, etc.)

    if () //validate = false si les données ne sont pas valides, puis changer la valeur du message à envoyer au client

    //Vérifier si la donnée existe déjà dans la base de données

    if () //validate = false si les données existent déjà, puis changer la valeur du message à envoyer au client



    return validate;

}


En ce qui concerne les Regex, ou expressions régulières, voir les Pattern sous Android : 

https://developer.android.com/reference/java/util/regex/Pattern.html

Pour voir si un enregistrement (ou tuple) existe dans la base de données en SQLite :

https://www.techonthenet.com/sqlite/exists.php

Envoyer un message

//Au début de la fonction de validation

String message = "Le nom d'utilisateur est valide"; 



//Lors de la vérification des données (dans les IF)

message = "Le nom d'utilisateur doit contenir au minimum 6 caractères";



//À la fin du processus de validation

SendMessage(message);



Contenu de la fonction SendMessage :

Context context = getApplicationContext();
int duration =Toast.LENGTH_SHORT;

Toast toast =Toast.makeText(context, message, duration);
toast
.show();

-
Edité par AlexandreMartin26 16 janvier 2017 à 15:46:32

  • Partager sur Facebook
  • Partager sur Twitter

Tout savoir sur Android : https://www.facebook.com/welearnandroid/?ref=bookmarks

Anonyme
16 janvier 2017 à 15:59:49

Merci, je me mets au boulot...
  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2017 à 16:21:03

Salut,

Pour la vérification de formulaire, tu peux regarder du côté de la bibliothèque saripaar. Elle te permet de valider tes formulaires à l'aide d'annotation. Tu gagneras énormément de temps :)

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2017 à 18:01:42

Salut,

Lorsque je mets ceci

compile 'com.mobsandgeeks:android-saripaar:(latest version)'

dans le gradle j'ai une erreur après la synchronisation : failed to resolve com.mobsandgeeks:android-saripaar:(latest version)

comment résoudre ce probleme ?

  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2017 à 18:18:46

Il convient de remplacer (latest version) par le dernier numéro de version.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 janvier 2017 à 18:42:10

salut,

    @NotEmpty(message = "Ce champs est obligatoire")
    @Min(value = 4, message = "Au moins 4 caractères")
    @Max(value = 15, message = "Au plus 15 caractères")
    protected EditText etUsername;

    @NotEmpty(message = "Ce champs est obligatoire")
    @Email(message = "Cette adresse n'est pas valide")
    protected EditText etEmail;

    @NotEmpty(message = "Ce champs est obligatoire")
    protected EditText etPhone;

    @NotEmpty(message = "Ce champs est obligatoire")
    @Min(value = 4, message = "Au moins 4 caractères")
    @Password(message = "Mot de passe invalide")
    protected EditText etPassword;



j'ai rencontré quelques problèmes :

Les champs Pseudo et Password me disent que je n'ai pas respecté le nombre de caractères requis alors qu'ils sont bien compris entre 4 et leur nombres max.

Quelqun peut avoir une idée du problème ? j'utilise la librairie saripaar

-
Edité par Anonyme 17 janvier 2017 à 15:22:21

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
18 janvier 2017 à 10:42:29

J'ai réussie à faire ce que je voulais ! Merci.

  • Partager sur Facebook
  • Partager sur Twitter
23 juillet 2021 à 12:30:55 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


23 juillet 2021 à 14:11:14

@lazz Bonjour, merci de ne pas déterrer d'ancien sujet résolu.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter