Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Probleme de validation des champs non-remplis

Sujet résolu
    18 juillet 2012 à 1:09:54

    Bonjour, j'ai réussi à créer ma première appli fonctionnelle sur android. J'ai juste une question, si on appuies sur le bouton "valider" sans remplir aucun champs, cela revoie une erreur. Sur mon application, c'est le seul gros problème que j'ai, comment pourrais-je le contourner ?
    PS: J'ai essayé avec if(monEditText.equals("")) ou bien if(monEditText.length() == 0){ //afficher message d'erreur }
    Mais rien de ça ne marche. J'ai également transformé mes EditText en string, j'ai essayé avec ceux-ci, mais même problème... Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      18 juillet 2012 à 1:43:54

      Salut,

      Essaye :
      monEditText.getText().length() <= 0
      


      Edit: j'avais oublié la comparaison
      • Partager sur Facebook
      • Partager sur Twitter
        18 juillet 2012 à 2:02:20

        Merci pour ta réponse, mais dès que j'appuie sur valider, même problème : "The application has stopped unexpectedly. Please try again"
        • Partager sur Facebook
        • Partager sur Twitter
          18 juillet 2012 à 11:19:58

          Je vous donne une partie du code :
          @Override
          	public void onClick(View v) {
          		if(v.getId() == R.id.button2){
          			
          			tempCorps1.getText().clear();
          			temp1.getText().clear();
          			poid1.getText().clear();
          			resultat.setText(defaut);
          		}
          		else if(v.getId() == R.id.button1){
          			
          			String tpc = tempCorps1.getText().toString();
          			String tp = temp1.getText().toString();
          			String m = poid1.getText().toString();
                      if(tempCorps1.getText().length() <= 0 || temp1.getText().length() <= 0 || poid1.getText().length() <= 0){
          				
          				resultat.setText("Vous n'avez pas rempli tout les champs");
          				
          			}
          
          • Partager sur Facebook
          • Partager sur Twitter
            18 juillet 2012 à 11:39:45

            Sans le stacktrace, il nous est très difficile de t'aider
            • Partager sur Facebook
            • Partager sur Twitter
              18 juillet 2012 à 11:41:33

              Excuse moi, mais de quoi il s'agit ? Moi, avec tout ces noms, je m'y perd :p
              • Partager sur Facebook
              • Partager sur Twitter
                18 juillet 2012 à 14:44:25

                Salut,

                Si tu travailles sur eclipse, tu fais Window->Show View->LogCat.
                Ca devrait t'ouvrir un nouvel onglet (dans la fenêtre du bas, la où y'a la console normalement)
                Dans cette fenêtre, tu as plein d'info dont les messages d'erreurs qui sont en rouge.
                C'est ceux ci qu'il faut pour voir le type d'erreur et d'où ça vient.
                • Partager sur Facebook
                • Partager sur Twitter
                  18 juillet 2012 à 16:11:31

                  Merci, voilà mes erreurs :

                  07-18 14:10:21.777: D/AndroidRuntime(316): Shutting down VM
                  07-18 14:10:21.777: W/dalvikvm(316): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
                  07-18 14:10:21.788: E/AndroidRuntime(316): FATAL EXCEPTION: main
                  07-18 14:10:21.788: E/AndroidRuntime(316): java.lang.NumberFormatException:
                  07-18 14:10:21.788: E/AndroidRuntime(316): at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at java.lang.Double.parseDouble(Double.java:287)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at java.lang.Double.valueOf(Double.java:326)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at com.example.postmortem2.MainActivity.onClick(MainActivity.java:86)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at android.view.View.performClick(View.java:2408)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at android.view.View$PerformClick.run(View.java:8816)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at android.os.Handler.handleCallback(Handler.java:587)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at android.os.Handler.dispatchMessage(Handler.java:92)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at android.os.Looper.loop(Looper.java:123)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at android.app.ActivityThread.main(ActivityThread.java:4627)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at java.lang.reflect.Method.invokeNative(Native Method)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at java.lang.reflect.Method.invoke(Method.java:521)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
                  07-18 14:10:21.788: E/AndroidRuntime(316): at dalvik.system.NativeStart.main(Native Method)
                  07-18 14:10:27.048: I/Process(316): Sending signal. PID: 316 SIG: 9
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 juillet 2012 à 17:04:32

                    Salut,

                    ta varaiable "defaut" est de quel type ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 juillet 2012 à 17:15:15

                      Salut,

                      Utilise plutôt la méthode isEmpty pour vérifie si un String est vide ou pas.

                      Ensuite, je pense que tu a juste oublie d'arrête la méthode en cas d’échec.

                      if(  tempCorps1.getText().isEmpty() ||  temp1.getText().isEmpty() || poid1.getText().isEmpty()){
                      				
                          resultat.setText("Vous n'avez pas rempli tout les champs");
                          //return;???
                      				
                      }//else ???
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 juillet 2012 à 18:20:06

                        Salut,

                        J'ai déplacé ton message vers la section « développement mobile » du forum, qui est appropriée pour ta question.

                        Je t'invite maintenant à modifier le titre de ton sujet, en éditant ton premier message, afin de mieux résumer ton problème. Garde bien la référence à android dans le titre, histoire d'éviter toute confusion avec iOS et Windows phone.

                        Bon courage pour ton problème ! :)
                        GuilOooo
                        • Partager sur Facebook
                        • Partager sur Twitter
                        J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                          18 juillet 2012 à 18:46:43

                          Bonjour, pour vous répondre, ma variable "défaut" est de type String, et pour répondre à AppPrentiS, lorsque je fais tempCorps2.getText().isEmpty(), cela ne marche pas, je ne peux pas mettre getText() suivi de isEmpty(), étrange... je n'ai pas mis de return dans fon "if()" et mon else effevtue un calcul et affcihe le résultat.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 juillet 2012 à 18:51:57

                            Merci d'avoir édité le titre ! :)
                            Bonne chance,
                            GuilOooo
                            • Partager sur Facebook
                            • Partager sur Twitter
                            J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                              18 juillet 2012 à 20:04:44

                              Salut,

                              je pense que le probleme est au moment ou tu fais "String tpc = tempCorps1.getText().toString();" : si TempsCorps1 est null, le code plante.

                              fait tes tests avant et non pas a la fin, et je pense que ca devrait rouler.

                              en esperant avoir ete clair et que le probleme vienne de la.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                18 juillet 2012 à 20:57:29

                                Merci beaucoup, je pense que ça m'aidera, mais je ne vois pas ce que tu veux dire par "faire mes test", pourrais tu illustrer ton commentaire avec un code ? Si oui, merci bien, je pense que ça va m'être utile.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  18 juillet 2012 à 21:21:42

                                  par test, je voulais dire ton "if" a la fin :

                                  @Override
                                  	public void onClick(View v) {
                                  		if(v.getId() == R.id.button2){
                                  			
                                  			tempCorps1.getText().clear();
                                  			temp1.getText().clear();
                                  			poid1.getText().clear();
                                  			resultat.setText(defaut);
                                  		}
                                  		else if(v.getId() == R.id.button1){
                                  			if(tempCorps1.getText().length() <= 0 || temp1.getText().length() <= 0 || poid1.getText().length() <= 0){
                                  				
                                  				resultat.setText("Vous n'avez pas rempli tout les champs");
                                  				
                                  			}
                                                           
                                                          else{
                                                               String tpc = tempCorps1.getText().toString();
                                  			     String tp = temp1.getText().toString();
                                  			     String m = poid1.getText().toString();	
                                  			}
                                  

                                  J'ai rien pour tester mais je pense que ça devrait fonctionner.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    18 juillet 2012 à 21:47:48

                                    Ca marche !!!! Merci énormément !!!!!
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    [Android] Probleme de validation des champs non-remplis

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown