IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

AlertDialog android java


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut AlertDialog android java
    Bonjour,

    Je suis entrain de faire les conditions pour l'inscription dans mon application mais je ne sais pas si je m'y prend bien ou non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
        if(login.getText().toString().length()>=5){
           if(email.isValid(){
                 if(password.isValidPassword(){
                      //http POST etc....
     
                  }else{
     
                       AlertDialog.Builder ErrorMSg = new AlertDialog.Builder(this);
                       TextView Error = new TextView(this);
                       Error.setText("Password not correct !");
                       Error.setGravity(Gravity.CENTER_HORIZONTAL);
                       ErrorMSg.setView(Error);
                       }
     
                    }
            }else{
                  AlertDialog.Builder ErrorMSg = new AlertDialog.Builder(this);
                  TextView Error = new TextView(this);
                  Error.setText("Email not correct!");
                  Error.setGravity(Gravity.CENTER_HORIZONTAL);
                  ErrorMSg.setView(Error);
            }
     
        } else{
     
        AlertDialog.Builder ErrorMSg = new AlertDialog.Builder(this);
         TextView Error = new TextView(this);
         Error.setText("Login must contains more than 5 characters");
         Error.setGravity(Gravity.CENTER_HORIZONTAL);
         ErrorMSg.setView(Error);
        }

    Cela vous semble correct ? je veux dire le fait de mettre des if en cascade et des alertDialogues ?


    Merci.

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Ce qui me choque c'est plutôt la redondance du code qui peut être éliminée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    String messageForTheDumbUser;
     
    if(login.getText().toString().length()>=5){
           if(email.isValid(){
                 if(password.isValidPassword(){
                      //http POST etc....
     
                  }else{
     
                       messageForTheDumbUser = "Password not correct !";
     
                       }
     
                    }
            }else{
     
                  messageForTheDumbUser = "Email not correct!";
     
            }
     
        } else{
     
     
         messageForTheDumbUser = "Login must contains more than 5 characters";
     
        }
     
       //dans tous les cas
       AlertDialog.Builder ErrorMSg = new AlertDialog.Builder(this);
         TextView Error = new TextView(this);
         Error.setText(messageForTheDumbUser);
         Error.setGravity(Gravity.CENTER_HORIZONTAL);
         ErrorMSg.setView(Error);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci de votre réponse, je n'y avais pas pensé justement !

    J'ai encore trois petites questions :

    1. Pour vérifier l'email et le mot de passe, je dois faire une fonction du genre emailValid avec un regex ou android a un moyen plus rapide de le faire ?

    2.
    J'ai beau faire un if , il rentre dedans même si les champs sont vides...
    Comment cela ce fait-il ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
     
    /*
     * Following code will create a new member row
     * All member details are read from HTTP Post Request
     */
     
    // array for JSON response
    $response = array();
     
    // check for required fields
    if (isset($_POST['login']) && (isset($_POST['email']) OR $_POST['email']!="") && isset($_POST['password'])) {
     
        $login = $_POST['login'];
        $email = $_POST['email'];
        // password a crypté par la suite
        $password = $_POST['password'];
     
        // include db connect class
        require_once __DIR__ . '/db_connect.php';
     
        // connecting to db
        $db = new DB_CONNECT();
     
        // mysql inserting a new row
     
    	$result = mysql_query("insert into user (login, email, password) values ('$login', '$email', '$password') ");
     
        // check if row inserted or not
        if ($result) {
            // successfully inserted into database
            $response["success"] = 1;
            $response["message"] = "Member successfully created.";
     
            // echoing JSON response
            echo json_encode($response);
        } else {
            // failed to insert row
            $response["success"] = 0;
            $response["message"] = "Oops! An error occurred.";
     
            // echoing JSON response
            echo json_encode($response);
        }
    } else {
        // required field is missing
        $response["success"] = 0;
        $response["message"] = "Required field(s) is missing";
     
        // echoing JSON response
        echo json_encode($response);
    }
    ?>

    3. Enfin , j'aimerais tester si le login est déjà présent dans la base de donnée , j'avais pensé a faire un SELECT * from user WHERE login="$login" et ensuite si le nombre de ligne retourner n'étais pas égale à 0 , je renvoyais une erreur.
    Je maitrise le php mais je ne sais pas comment retourner l'erreur pour l'afficher dans l'application de la forme : " veuillez changer de login svp" dans une alertDialog

    Enfaite pour faite simple, je ne sais pas passer du php au java.


    Merci à vous.

  4. #4
    Membre averti Avatar de manry
    Homme Profil pro
    Alternant administration système et sécurité
    Inscrit en
    Janvier 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Alternant administration système et sécurité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 64
    Par défaut
    Salut je dis peut être des bétises mais ta condition me parait bizarre, apriori tu test 2 fois si ton mail est vide
    j'aurais plus vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // check for required fields
    if (isset($_POST['login']) && isset($_POST['email']) && isset($_POST['password'])) {
    ...
    }
    apriori ça devrais passer

    et pour ta dernière question tu a aussi le select count (*) ... qui te retourne le nombre de pseudo dans la table

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci j'aimerais afficher le $response["message"] (qui contient le message d'erreur) dans une alertDialog mais je ne sais pas comment obtenir le $response dans les fichier java.

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    $response = array();
    if (isset($_POST['question_text'])) {
    $question_text = $_POST['question_text'];
    require_once __DIR__ . '/db_connect.php';
    $db = new DB_CONNECT();
    $result = mysql_query("INSERT INTO questions(question_text) VALUES('$question_text')");
    if ($result) {
        $response["success"] = 1;
        $response["message"] = "Product successfully created.";
        echo json_encode($response);
    } else {
        $response["success"] = 0;
        $response["message"] = "Oops! An error occurred.";
        echo json_encode($response);
    }
    } else {
        $response["success"] = 0;
        $response["message"] = "Required field(s) is missing";
        echo json_encode($response);
    }
    ?>

  6. #6
    Membre averti Avatar de manry
    Homme Profil pro
    Alternant administration système et sécurité
    Inscrit en
    Janvier 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Alternant administration système et sécurité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 64
    Par défaut
    Je connais pas le json_encode je sais pas si tu peux encoder un tableau mais tu peux pas juste creer une variable qui contient une chaine de caractère (au lieu du tableau) et tu la met en argument de ta fonction

  7. #7
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Il faut bien comprendre que le code serveur ne sert qu'à générer le corps d'une réponse HTTP qui sera récupérée sur le périphérique Android. Dans le code présenté, cela produit du JSON qu'il faudra nécessairement parser coté Android. A la limite, ne prend pas la tête avec JSON et va au plus simple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    if (isset($_POST['question_text'])) {
    $question_text = $_POST['question_text'];
    require_once __DIR__ . '/db_connect.php';
    $db = new DB_CONNECT();
    $result = mysql_query("INSERT INTO questions(question_text) VALUES('$question_text')");
    if ($result) {
        echo "Product successfully created.";
    } else {
        echo "Oops! An error occurred.";
    }
    } else {
        echo "Required field(s) is missing";
    }
    ?>

    Avec ce code, un simple fragment de texte est généré dans la réponse HTTP. Ainsi, quant tu le récupères coté Android (avec HttpClient), tu peux directement le mettre en paramètre de ton AlertDialog et le tour est joué.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/08/2011, 11h16
  2. application android java
    Par mzellelati dans le forum Android
    Réponses: 1
    Dernier message: 05/05/2011, 09h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo