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
//je rajoute le paramètre ArrayList aTableauIngredient qui contient la liste des ingredients
public long insertRecette(String sNomRecette, String sContenuRecette,ArrayList 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
//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é.
//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
*Si lingredient existe déja dans ma base je récupére juste l'identifiant
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
Ces articles pourraient vous intéresser :