-
15juin
Développez une application pour android étape 16 (indexer mes ingredients sur ma recette)
Ce tuto sera plus orienté développement. Le but dans cette étape est d’indexer chaque ingredient de la recette dans ma table recette_contenu.
L’enregistrement de ma recette se fera donc en 2 étapes. Tous ces modifications se feront dans la méthode insertRecette de ma class BDAcces
?Download download.txt1 2
//je rajoute le paramètre ArrayList<String[]> aTableauIngredient qui contient la liste des ingredients public long insertRecette(String sNomRecette, String sContenuRecette,ArrayList<String[]> aTableauIngredient)
I- enregistrement du nom de la recette et de la préparation dans la table recette_larecette en récupérant l’identifiant unique de ma recette
?Download download.txt1 2 3 4 5 6
//Enregistrement du nom et de la préparation de la recette dans ma base de donnée ContentValues initialValues = new ContentValues(); initialValues.put("nom_larecette", sNomRecette); initialValues.put("recette_larecette", sContenuRecette); long idrecette = mDb.insert(RECETTE_TABLE, null, initialValues);II- Je boucle sur la liste des ingredients contenus dans mon tableau aTableauIngredient.
*si l’ingredient n’existe pas dans ma table recette_condiment je l’enregistre , et je récupére sont identifiant ensuite dans ma table recette_contenu j’enregistre l’identifiant de ma recette, celui de mon ingredient,l’unité de mesure et la quantité.?Download download.txt1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
//récupration de la taille de mon tableau int itaille= aTableauIngredient.size(); String[] acol= new String[]{"nom_condiment","id_condiment"}; for(int j=0;j<itaille;j++){ // recherche de l'ingredient dans le tableau recette_condiment String sselect =" nom_condiment='"+aTableauIngredient.get(j)[2]+"'"; Cursor tmpcursor = mDb.query(INGREDIENT_TABLE, acol, sselect,null,"","",""); // si l'ingredient n'existe pas if(tmpcursor.getCount()==0){ ContentValues initialValuestmp = new ContentValues(); initialValues.put("nom_condiment", aTableauIngredient.get(j)[2]); long idtmpcomd = mDb.insert(INGREDIENT_TABLE, null, initialValuestmp); //*****************enregistrement lien condiment recette************* ContentValues initiallienstmp = new ContentValues(); initiallienstmp.put("id_larecette", idrecette); initiallienstmp.put("unitemesure_contenu", aTableauIngredient.get(j)[1]); initiallienstmp.put("id_condiment", idtmpcomd); initiallienstmp.put("nombre_contenu", aTableauIngredient.get(j)[0]); mDb.insert(INGREDIENT_RECETTE_TABLE, null, initiallienstmp); }*Si lingredient existe déja dans ma base je récupére juste l’identifiant
?Download download.txt1 2 3 4 5 6 7 8 9 10 11 12
else{ int iPostNom = tmpcursor.getColumnIndex("id_condiment"); tmpcursor.moveToFirst(); String idtmpcomd=tmpcursor.getString(iPostNom); //*****************enregistrement lien condiment recette************* ContentValues initiallienstmp = new ContentValues(); initiallienstmp.put("id_larecette", idrecette); initiallienstmp.put("unitemesure_contenu", aTableauIngredient.get(j)[1]); initiallienstmp.put("id_condiment", idtmpcomd); initiallienstmp.put("nombre_contenu", aTableauIngredient.get(j)[0]); mDb.insert(INGREDIENT_RECETTE_TABLE, null, initiallienstmp); }Cette architecture de ma base de données me permettra plus tard de pourvoir faire différentes requêtes,
par exemple la liste des courses sur une liste de recette en factorisant les ingrédients.Code source ici
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
2 commentaires
Laissez un commentaire
Vous devez être identifié pour publier un commentaire.
Connexion - Inscription
S'inscrire









