• 06avr

    Développez une application pour android etape 6 (Enregistrement dans une table)



    Dans mon post précédent ici j’ai mis en place une classe permettant la connexion à ma base de données et également une méthode d’enregistrement d’une recette.

    dans ma classe principal Recette je vais créer une instance de ma classe BDAcess

    private BDAcces objBd;

    dans la méthode sur l’action du bouton btEnregRecette.setOnClickListener(new Button.OnClickListener() on rajoute le code suivant à la place du code actuel

    1
    2
    3
    4
    5
    6
    7
    
    objBd.open();//connexion à  ma base de donnée
    String sNomRecette = texthaut.getText().toString();//récupération du nom de notre recette
    String sContenuRecette = textbas.getText().toString();//récupération de la recette
    long bresult = objBd.insertRecette(sNomRecette, sContenuRecette);//enregistrement dans ma base de données
    String resultsring = new Long(bresult).toString() ;//conversion du résultat en Type String pour pouvoir l'affiche
    textbas.setText(resultsring);//affichage du résultat de notre requete dans le champ contenu de la recette
    objBd.close();//fermeture de ma base de données

    Si quand vous cliquez sur votre bouton valider il ‘s’affiche 1 dans le champ contenu recette c’est ok sinon -1 ou un bug dans l’application il faut debugger et sous eclipse il existe de bon outil de debuggage. celui que j’utilise et que je trouve assez simple et la perspective debug,dans window->open perspective->debug

    android61 300x91 Développez une application pour android etape 6 (Enregistrement dans une table) Android France

    Dans la fenetre obtenue nous avons une vue dediée aux log de ce qui se passe dans l’application sur cette vue on peut également filtrer suivant les erreurs,warning etc…

    android62 300x160 Développez une application pour android etape 6 (Enregistrement dans une table) Android France

    A suivre afficher la liste des recettes

    Il est temps de mettre à profit les tutoriels d’Android France:
    Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo


    Apprenez à développer en vidéo

    Guy

    Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

    Twitter Google+ 

75 commentaires

  1. 25 mars 2010 à 16 h 36 min

    voilà ces sont les lignes rouges dans le log cat lorsque je clique sur la boutton valider:
    03-25 15:36:55.754: ERROR/AndroidRuntime(1186): Uncaught handler: thread main exiting due to uncaught exception
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): java.lang.NullPointerException
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at com.application.sqlite.Main$1.onClick(Main.java:63)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.View.performClick(View.java:2179)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.View.onTouchEvent(View.java:3828)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.widget.TextView.onTouchEvent(TextView.java:6291)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.View.dispatchTouchEvent(View.java:3368)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1707)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1197)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.app.Activity.dispatchTouchEvent(Activity.java:1993)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1691)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.view.ViewRoot.handleMessage(ViewRoot.java:1525)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.os.Handler.dispatchMessage(Handler.java:99)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.os.Looper.loop(Looper.java:123)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at android.app.ActivityThread.main(ActivityThread.java:3948)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at java.lang.reflect.Method.invokeNative(Native Method)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at java.lang.reflect.Method.invoke(Method.java:521)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    03-25 15:36:55.823: ERROR/AndroidRuntime(1186): at dalvik.system.NativeStart.main(Native Method)

  2. 25 mars 2010 à 16 h 47 min

    Mr Guy,est ce que vous avez trouver ou ca se bloque?
    est ce que code est correcte?
    SVP aidez moi

  3. 25 mars 2010 à 16 h 52 min

    j’espère que j’ai vous envoyé cette fois que vous m’avez demandé
    merci

  4. 25 mars 2010 à 16 h 54 min

    @chouk et @nour envoyez moi vos projets sur guy at android-france point f j’essayerai de regarde ça ce week end

  5. 25 mars 2010 à 17 h 01 min

    ok,merci beaucoup Mr Guy

  6. 25 mars 2010 à 17 h 28 min

    Mr Guy,votre e-mail est:guy at android-france point fr ?

  7. 25 mars 2010 à 17 h 32 min

    @nour oui

  8. 25 mars 2010 à 17 h 41 min

    SVP Mr Guy,
    une question: est ce que je peux voir ma base de données dans laquelle j’ai crée mes 3 tables et comment je peux l’extraire?
    merci

  9. 25 mars 2010 à 18 h 05 min

    Mr Guy, SVP,est ce que vous pouvez me repondre?
    j’ai besoin de de l’extraire.j’ai déja SQLite installé sur pc

  10. 29 mars 2010 à 11 h 41 min

    bonjour Mr Guy,
    je t’ai envoyé le projet sur ton adresse e-mail,est ce que vous l’avez reçu?
    repond moi SVP
    vraiment j’ai besoin de ton aide svp;
    merci

  11. 3 avril 2010 à 21 h 29 min

    Bonsoir Mr Guy,
    J’ai vous envoyé le projet à corriger.
    J’ai debuggé le projet pat à pat et j’ai remarqué que la connexion marche bien mais je pense qu’ il y a des erreurs sql dans l’insertion et je crois que la récupération du contenu des textfiealds n’est pas correcte.
    S.V.P j’ai besoin de votre aide.
    Et merci.

  12. 3 avril 2010 à 23 h 24 min

    bonsoir Mr Guy,
    vous m’avez dit de vous relancer ce weekend le projet pour que vous essayez de m’aider.je crois que j’ai resolu le probleme de connexion.mais il reste un probleme dans l’ajout,l’application n’est pas entrain de recuperer le contenu les donnees saisies.on va vous envoyer le projet une autre fois car on a corriger comme on vient de dire le pb de connexion,il rest le pb d’ajout dans la base et l’affichage.SVP nous sommes bloqués on a besoin de ton aide, merci beaucoup

  13. 7 avril 2010 à 21 h 48 min

    bonjour Mr GUY,
    merci bien pour votre attention et pour votre réponse,on a essayé de corriger d’après vos remarques signalées,mais ça marche pas et c’est logique car notre base est vide donc on doit faire fonctionner le bouton ajouter(car dans notre premier champs “code patient” n’apparait ni 1 ni -1) et c’est ça ce qui nous a bloqué et qu’on n’a pas le pu trouver une solution,on sait pas ou exactement reside le pb dans méthode insertPatient.Et puisque le bouton ajouter ne fonctionne pas la base reste vite.
    Donc je pense que le problème dans la méthode insertPatient() et précisement les erreurs sql dans l’insertion et je crois que la récupération du contenu des textfiealds n’est pas correcte.
    Désolé pour la gêne.
    Et vraiment merci bien pour votre aide et j’espère que vous me répondez a mon problème le plus tôt possible.

    je pense que l’erreur ici:
    public long insertPatient(int x,String sNom_Patient, String sAdresse_Patient,String SNumassu_Patient)throws SQLException
    { System.out.println(“ok insertion”);
    ContentValues initialValues = new ContentValues();
    initialValues.put(“Code_Patient”, x);
    initialValues.put(“Nom_Patient”, sNom_Patient);
    initialValues.put(“Adresse_Patient”, sAdresse_Patient);
    initialValues.put(“N_Assurance_Patient”, SNumassu_Patient);
    mDb.toString();
    int s=0;
    //return mDb.insert(PATIENT_TABLE, null, initialValues);
    try{
    System.out.println(“insertion”);
    mDb.execSQL(“insert into patient values(1,’ali’,'rueaaa’,’1111′)”);
    s=1;
    System.out.println(“ok insertion”);
    }
    catch(Exception e)
    {
    System.out.println(“ERREUR insertion”);
    }
    return s;
    }

    S.V.P j’ai besoin de votre aide.
    Et merci.

  14. 8 avril 2010 à 17 h 42 min

    voilà les erreurs qui s’affiche dans le log cat lorsque je clique sur le buton valider
    J’ai essayé plusieurs fois avec ces erreurs mais rien ne change e j’ai pas compris où se trouve l’erreur exactement
    J’ai besoin de votre aide et merci.

    04-08 15:36:51.862: ERROR/AndroidRuntime(735): at android.app.ActivityThread.main(ActivityThread.java:3948)
    04-08 15:36:51.862: ERROR/AndroidRuntime(735): at java.lang.reflect.Method.invokeNative(Native Method)
    04-08 15:36:51.862: ERROR/AndroidRuntime(735): at java.lang.reflect.Method.invoke(Method.java:521)
    04-08 15:36:51.862: ERROR/AndroidRuntime(735): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
    04-08 15:36:51.862: ERROR/AndroidRuntime(735): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
    04-08 15:36:51.862: ERROR/AndroidRuntime(735): at dalvik.system.NativeStart.main(Native Method)

  15. 10 avril 2010 à 17 h 18 min

    Bonsoir,
    pour cette instruction
    String sNomPatient = textbas.getText().toString();
    comment je peut la modifier avec un edittext et non pas un textview
    et merci

  16. 10 avril 2010 à 18 h 17 min

    Bonsoir Mr Guy,
    Avec un long travail j’ai arrivé à exécuter le bouton Ajouter mais comme vous avez indiquer dans le tutoriel quand j’ai clique sur ce bouton il ’s’affiche -1 dans le champ Nom_patient.
    Lorsque j’ai fait le try catch il m’affiche dans le log cat ok insertion (04-10 15:57:13.913: INFO/System.out(761): ok iiiiiiiinsertion
    )mais au même temps il m’affiche une erreur d’insertion(04-10 15:57:13.648: ERROR/Database(761): Error inserting Nom_Patient=anis Numassurance_Patient=123 Adresse_Patient=rue lyeman
    ). Je veux savoir lorsque il s’affiche -1 l’insertion marche ou pas si nom quel est le problème car je suis bloqué à ce stade là et je ne trouve aucune solution.J’ai besoin de votre aide Please please je suis 24/24 sur le PC et je trouve pas le problème.Et merci bien.

  17. 28 mai 2011 à 21 h 34 min

    Salut,

    En fait, après le clic sur un bouton, je n’arrivais pas à passer d’un écran à l’autre. et j’ai remarqué cette erreur dans le logcat:
    Can’t dispatch DDM chunk 46454154: no handler defined

    Je ne sais pas trop ce que c’est par contre, j’avais oublié de déclarer dans le fichier AndroidManifest.xml l’autre activité correspondant à l’écran qui ne s’affichait pas. Du coup, mon problème s’était réglé mais l’erreur dans le logcat est tout de même resté.

    A+

  18. 24 octobre 2011 à 18 h 42 min

    Tuto bourré de fautes, et en particulier dans le code. ça commence à être lourd. je laisse tomber.

  19. 29 novembre 2011 à 17 h 23 min

    Bonjour,
    étant débutant je me suis lancé dans ce tuto pour apprendre à utiliser les bases de données, cependant je reste bloqué à l’étape du clic sur le bouton “valider”.
    à la ligne : objBd.open();
    j’obtient le message Thread [ main ] (Suspended (exeption NullPointerExeption)), sauriez vous m’aider à résoudre ce problème ?
    Cordialement,
    Reynholds Reinette

  20. 30 novembre 2011 à 8 h 59 min

    @Reinette cette erreur arrive généralement quand vous avez pas crée un instance de objBd

  21. 15 avril 2012 à 15 h 39 min

    Bonjour,
    Je suis aussi bloqué ici.

    QQn pourrait-il mettre le code des deux fichiers java en entier. Merci.

  22. 15 avril 2012 à 15 h 41 min

    Juste pour cocher la case “Prévenez-moi des nouveaux commentaires par email”

Laissez un commentaire

     Vous devez être identifié pour publier un commentaire.
     Connexion - Inscription