-
09avr
Développez une application pour android etape 7 (Affichage de la liste des recettes)
dans mon post précédent j’ai mis en place un formulaire avec lequel j’enregistre une recette.
Etape 7 je vais afficher la liste des recettes de la base de données. dans le repertoire res/layout je crée un fichier liste_recette.xml, c’est ce fichier qui sera appelé pour afficher ma liste de recette.
1 2 3 4 5 6 7 8 9 10 11
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@android:id/list" android:persistentDrawingCache="animation|scrolling" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout>
dans notre classe BDAcess.java je vais rajouter une méthode qui renvoi dans un tableau la liste des recettes de ma base.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
public ArrayList<String> renvoi_liste_recette(){ String[] aTableCollonne=new String[] {"nom_larecette"}; Cursor objCursor = mDb.query(RECETTE_TABLE,aTableCollonne,null,null,null,null,null,null);//requete de récupération de la liste int iPostNomchaine = objCursor.getColumnIndex("nom_larecette"); ArrayList<String> aTableRetour = new ArrayList<String>(); objCursor.moveToFirst();// position sur la première ligne if (objCursor != null) { if (objCursor.isFirst()) { int i = 0; do { i++; String resultsring = objCursor.getString(iPostNomchaine);//récupération du nom de la recette aTableRetour.add(resultsring);//enregistrement du nom de la recette dans tableau objCursor.moveToNext();//positionnement sur le suivant }while(objCursor.isLast()); } } return aTableRetour; }dans mon menu je vais affecté l’action sur mon menu Recette , dans ma section de gestion du menu je rajoute le code suivant
1 2 3 4 5 6 7 8 9 10 11 12 13
case R.id.item03: objBd.open();// ouverture de la base de donnée this.setContentView(R.layout.liste_recette);// ouverture de ma page xml mPhotosList = (ListView) findViewById(android.R.id.list); final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,objBd.renvoi_liste_recette()); mPhotosList.setAdapter(adapter); mPhotosList.setOnItemClickListener(this) objBd.close();//fermeture de ma base return true;
vous pouvez télécharger le code source de ces étapes ici
à suivre rechercher une recette avec un champ d’autocomplémentation
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
Vidéo de formation pour Android
20 commentaires
Laissez un commentaire
Vous devez être identifié pour publier un commentaire.
Connexion - Inscription
S'inscrire










Coucou,
Juste une remarque: il est mieux de tester la nullité de objCursor avant de faire un objCursor.moveToFirst().
Sinon tes articles sont nickels. Bravo.
Super bien ce post. Et de mieux en mieux avec à l’étape 7 qui permet de voir l’ensemble du projet.
je crois bien qu’on écrit co-N-diment enfin à vérifier.
Petit point d’amélioration par soucis de perfectionnement
A l’étape 8.
‘Par souci de’ … désolé
Salut!
Bravo pour tes tutos!
Juste une remarque: quand j’essaie ton projet de l’étape 7, il me dit dans R.java à la ligne:
“public final class R {”
cette remarque:
“The type R is already defined”
Bonen continuation.
Bonsoir à tous (et bonne année).
Bon tous d’abord encore merci pour ce tuto.
Ensuite je n’arrive pas à récupérer la source apparement le fichier rar n’est plus dispo.
dernièrement j’ai un soucis car le script ne boucle pas pour ajouter les données de la liste.
Je pensait à une erreur de récup des données mais bon cela fonctionne.
J’ai donc modifié le script afin que cela fonctionne (avec un for(j=0;j<20;j++)…) mais bon j'airmerais comprendre pourquoi cela marche sur le premier passage et ensuite cela stop la boucle.
Merci par avance pour votre aide (et vos conseils).
Bon dimanche à tous.
Ce code ne semble pas ajouter le dernier élément du Cursor dans la liste aTableRetour.
Il convient d’appeler la méthode moveToLast() sur le Cursor après la boucle d’ajout et d’ajouter le dernier élément à la liste.
on doit changer la condition sur la boucle do while elle devienne while(objCursor.isLast()==false)pour qu’on puisse afficher toute la liste