Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher les données d'une BDD dans un Listview

Sujet résolu
    22 février 2017 à 22:16:06

    Bonsoir

    Je réalise une petite application android pour la gestion d'un congélateur.

    J'ai réalisé avec Android Studio une petite base de données pour cela.

    Ma Base de données  fonctionne j'arrive à afficher une ligne d'enregistrement dans un toast,

    donc ma BDD à l'air de fonctionner!

    Je ne suis qu'un retraité qui aime programmer en java.

    Il me manque quelques informations suivantes:

    J'aimerai afficher dans une activité une liste de données de ma base de données.

    Pour cela je veux utiliser une Listview cela fait des jours que j'essaye après avoir fait des recherches sur le net sans succès.

    Voici mon code qui fonctionne mais avec des erreurs dans le fichier GestionBDD.java concernant l'affichage avec la Listview.

    Mon fichier MainActivity.java

    package com.example.rapidego.frigo1;
    
    import android.content.Intent;
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    
    public class MainActivity extends ActionBarActivity
    {
    
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
    
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //Creation d'une instance de la classe GestionBDD(creer la Bdd)
             GestionBDD bddViandes = new GestionBDD(this);
    
            //On ouvre la base de donnees
            bddViandes.open();
    
            //Creation d'une ligne pour une viande
            Viandes decoupe = new Viandes("boeuf", "cote", "4", "BG");
                                    //
            // insertion d'une viande
            bddViandes.insertViandes(decoupe);
    
             /*Pour verifier si on a bien creer notre decoupe dans la BDD
            *on extrait la decoupe de la BDD grace au titre de la decoupe
            que l'on a creer precedemment */
           Viandes decoupePourBdd = bddViandes.getViandesWithTitre(decoupe.getType());
    
            //Si une decoupe est retournee (donc si la decoupe a bien ete ajoutee a la Bdd
            //ici on affiche les infos de la decoupe dans un toast
           if (decoupePourBdd != null)
                {
                     Toast.makeText(this, decoupePourBdd.toString(), Toast.LENGTH_LONG).show();
                }
    
            //*******************code listeView******************************************
            // on cree un tableau de donnees pour les items de la liste<view
           String[] lesItems =
                    {
                            "Afficher toutes les viandes",
                            "Ajouter une viande",
                            "Modifier une ligne de viande",
                            "Initialisation de la base"
                    };
            //Creation de l'dapter
            ArrayAdapter <String> adapter =new ArrayAdapter<String>
                    (this, android.R.layout.simple_list_item_1, lesItems);
    
            //recuperation du listview present dans notre IHM
            ListView listCommande = (ListView) findViewById(R.id.Laliste);
    
            // on passe nos donnees au composantListView
            listCommande.setAdapter(adapter);
    
            listCommande.setOnItemClickListener(new AdapterView.OnItemClickListener()
            {
                Intent intent = null;
                    public void onItemClick(AdapterView <?> parent, View view, int position, long id)
                    {
                        switch (position)
                        {
                            case 0:
                                intent = new Intent(getBaseContext(), Affichage1.class);
                                break;
                            case 1:
                                intent = new Intent(getBaseContext(), Affichage1.class);
                                break;
                            case 2:
                                intent = new Intent(getBaseContext(), Affichage1.class);
                                break;
                            case 3:
                                intent = new Intent(getBaseContext(), Affichage1.class);
                                break;
                        }
    
                        //pour eviter le if on peut faire un return sur default du switch
                        if (intent != null) startActivity(intent);
                    }
            });//fin de la methode onItemClick
    
       }   // fin de methode onCreate
    
    //**********************************partie menu***************************************
        @Override
        public boolean onCreateOptionsMenu(Menu menu)
        {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item)
        {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings)
            {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }

     Mon Fichier Viandes.java

    package com.example.rapidego.frigo1;
    
    /**
     * Created by rapidego on 16/06/2015.
     */
    public class Viandes
    {
        //declare les variables
        private  int id;
        private String type;
        private String etat;
        private String nombre;
        private String endroit;
    
        //constructeur vide
        public Viandes(){}
    
        //constructeur rempli
        public Viandes(String type, String etat,  String nombre, String endroit)
        {
            this.type = type;
            this.etat = etat;
            this.nombre = nombre;
            this.endroit = endroit;
    
    
        }
    
        //les différents getter et setter
        public int getId() {return id;}
        public void setId(int id) {this.id = id;}
    
        public String getType() {return type;}
        public void setType(String type) {this.type = type;}
    
        public String getEtat() {return etat;}
        public void  setEtat(String etat) {this.etat = etat;}
    
        public String getNombre() {return nombre;}
        public void setNombre(String nombre) {this.nombre = nombre;}
    
        public String getEndroit() {return  endroit;}
        public void setEndroit(String endroit) {this.endroit = endroit;}
    
        public String toString()
        {
            return "ID :" + id + "\nTYPE :" + type + "\nENDROIT :" + endroit +
                    "\nETAT :" + etat + "\nNOMBRE :" + nombre;
        }
    }
     Mon Fichier GestionBdd
    package com.example.rapidego.frigo1;
    
    /**
     * Created by rapidego on 16/06/2015.
     */
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.view.View;
    
    
    public class GestionBDD
    {
        //variables
        private static final int VERSION_BDD = 1;
        private static final String NOM_BDD = "viandes.db";
    
        private static final String TABLE_VIANDES = "table_viandes";
    
        private static final String COL_ID = "ID";
        private static final int NUM_COL_ID = 0;
        private static final String COL_TYPE = "TYPE";
        private static final int NUM_COL_TYPE = 1;
        private static final String COL_ETAT = "ETAT";
        private static final int NUM_COL_ETAT = 2;
        private static final String COL_COMBIEN = "COMBIEN";
        private static final int NUM_COL_COMBIEN = 3;
        private static final String COL_ENDROIT = "ENDROIT";
        private static final int NUM_COL_ENDROIT = 4;
    
        private SQLiteDatabase bdd; // Declare objet bdd
        private MaBaseSQLite maBaseSQLite; // Declare objet maBaseSQLite
    
        //Constructeur rempli
        public GestionBDD(MainActivity context)
        {
            //on cree la BDD et sa table
            maBaseSQLite = new MaBaseSQLite(context, NOM_BDD, null, VERSION_BDD);
        }
    
        public GestionBDD()
        {
    
        }
    
        public void open()
        {
            //on ouvre la bdd en ecriture
            bdd = maBaseSQLite.getWritableDatabase();
        }
    
        public void close()
        {
            //on ferme l'acces a la bdd
            bdd.close();
        }
    
        public SQLiteDatabase getBdd()
        {
            return  bdd;
        }
    
        public long insertViandes(Viandes viandes)
        {
            //creation d'un ContentValues (fonctionne comme une HashMap
            ContentValues values = new ContentValues();
            //On lui ajoute une valeur associee a une clef (qui est le nom de la colonne
            //dans laquelle on veut mettre la valeur.
    
            values.put(COL_TYPE, viandes.getType());
            values.put(COL_ETAT, viandes.getEtat());
            values.put(COL_COMBIEN, viandes.getNombre());
            values.put(COL_ENDROIT, viandes.getEndroit());
    
            //On insere l'objet dans la BDD via le ContentValues
            return bdd.insert(TABLE_VIANDES, null, values);
        }
    
        public int upDateViandes(int id, Viandes viandes)
        {
            // la mise a jour de la viande dans la BDD fonctionne plus ou moins
            //comme une insertion
            // Il faut simplement preciser quelle viande il faut mettre a jour
            // grace a l'ID
    
            ContentValues values = new ContentValues();
            values.put(COL_TYPE, viandes.getType());
            values.put(COL_ETAT, viandes.getEtat());
            values.put(COL_COMBIEN, viandes.getNombre());
            values.put(COL_ENDROIT, viandes.getEndroit());
            return bdd.update(TABLE_VIANDES, values, COL_ID + " = " + id, null);
        }
    
        public int removeViandesWithdID(int id)
        {
            //suppression d'une viande de la BDD grace a l'ID
            return bdd.delete(TABLE_VIANDES, COL_ID + " = " + id, null);
        }
    
        public Viandes getViandesWithTitre(String titre)
        {
            //Recupere dans un cursor les valeurs correspondant à une viandes contenu
            // dans la BDD (ici on selectionne la viande grace a son titre)
            Cursor c = bdd.query(TABLE_VIANDES, new String[]{COL_ID, COL_TYPE, COL_ETAT,
                            COL_COMBIEN, COL_ENDROIT}, COL_TYPE + " LIKE\"" + titre + "\"", null, null,
                    null, null);
            return  cursorToViandes(c);
        }
    
        //Cette methode permet de convertire un cursor en une viande
        private Viandes cursorToViandes(Cursor c)
        {
            //Si aucun element n'a ete trouve dans la requete, on renvoie null.
            if (c.getCount() == 0)
                return null;
    
            //Sinon on se place sur le premier element
            c.moveToFirst();
            //On cree  une viande
            Viandes viandes = new Viandes();
    
            //On lui affecte toutes les infos grace aux infos contenues dans le Cursor
            viandes.setId(c.getInt(NUM_COL_ID));
            viandes.setType(c.getString(NUM_COL_TYPE));
            viandes.setEtat(c.getString(NUM_COL_ETAT));
            viandes.setNombre(c.getString(NUM_COL_COMBIEN));
            viandes.setEndroit(c.getString(NUM_COL_ENDROIT));
    
            //On ferme le Cursor
            c.close();
    
            //On retourne le viande
            return viandes;
    
    
        }
    
        //*************Mon essai pour affichage en Listview***************************************
       // private Viandes AfficheTouteViande()
       // {
            //commande SQL
           // String query = "SELECT * FROM TableViandes";
            //accès à la base de données
            //SQLiteDatabase bddViandes = this.getWritableDatabase(Viandes);
           // Cursor c = bdd.rawQuery(query, null);
    
       // }
    
    
    }
    
     Mon fichier Affichage1.java
    package com.example.rapidego.frigo1;
    
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    //import android.widget.Toast;
    
    
    public class Affichage1 extends ActionBarActivity
    {
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_affichage1);
    
            //Creation de l'dapter
            ArrayAdapter<String> adapter =new ArrayAdapter<String>
                    (this,  android.R.layout.simple_list_item_1);
    
            //recuperation du listview present dans notre IHM
            ListView listCommande = (ListView) findViewById(R.id.Afficheliste);
    
        }
    
        //********************************partie menu*****************************
        @Override
        public boolean onCreateOptionsMenu(Menu menu)
        {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_affichage1, menu);
            return true;
    
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item)
        {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings)
            {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }
    
     
    Mon fichier activity main .xml

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

                    xmlns:tools="http://schemas.android.com/tools"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="@dimen/activity_horizontal_margin"
                    android:paddingRight="@dimen/activity_horizontal_margin"
                    android:paddingTop="@dimen/activity_vertical_margin"
                    android:paddingBottom="@dimen/activity_vertical_margin"
                    tools:context=".MainActivity" >
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingTop="10dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp" >
    
            <ListView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/Laliste" >
    
    
            </ListView>
    
    
    
    
        </LinearLayout>
    
    </RelativeLayout>
    

    Mon fichier activity_affichage1.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    xmlns:tools="http://schemas.android.com/tools"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="@dimen/activity_horizontal_margin"
                    android:paddingRight="@dimen/activity_horizontal_margin"
                    android:paddingTop="@dimen/activity_vertical_margin"
                    android:paddingBottom="@dimen/activity_vertical_margin"
                    tools:context="com.example.rapidego.frigo1.Affichage1">
    
        <TextView
            android:text="Affichage Table viandes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingTop="25dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true">
    
            <ListView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/Afficheliste" >
    
            </ListView>
    
        </LinearLayout>
    
    </RelativeLayout>
    

    Mon fichier Androidmanifest

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.rapidego.frigo1" >
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name=".Affichage1"
                android:label="activity_affichage1">
    
            </activity>
    
    
    
        </application>
    
    </manifest>

    Qui pourrait m'aider pour enfin avancer ce projet qui n'est qu'un essai

    Qui pourrait m'indiquer une litérature pertinente concernant ce sujet

    Un grand merci pour toutes aides je ne suis qu'un retraité qui à choisi comme hobi la programmation

    Merci rapidego








    • Partager sur Facebook
    • Partager sur Twitter
      23 février 2017 à 19:41:12

      Bonsoir,

      L'erreur vient-elle de la méthode AfficherTouteViande (dans le code affiché dans ce post) ?

      Je pensais à :

      private ListView AfficheTouteViande()
         {
             String query = "SELECT * FROM TableViandes";
             SQLiteDatabase bddViandes = this.getWritableDatabase(Viandes);
             Cursor c = bdd.rawQuery(query, null);
      
             ObservableList<String> names = FXCollections.observableArrayList(
                c.getString(0), c.getString(1));
             ListView<String> lv = new ListView<String>(names);
      
             return lv;
         }



      En espérant aider.

      -
      Edité par Evury 23 février 2017 à 20:40:48

      • Partager sur Facebook
      • Partager sur Twitter
        23 février 2017 à 21:20:40

        Bonsoir,

        Merci de me répondre aussi rapidement.

        Je vais essayer votre code et je vous tiendrai au courant.

         

        J'ai essayé le code mais il ne fonctionne pas  ci-dessous les erreurs renvoyées:

        Error:(143, 62) error: cannot find symbol variable Viandes

        Error:(146, 9) error: cannot find symbol class ObservableList

        Error:(146, 40) error: cannot find symbol variable FXCollections

        Error:(148, 17) error: type ListView does not take parameters

        Error:(148, 43) error: type ListView does not take parameters

        Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
        > Compilation failed; see the compiler error output for details.

        Il ne reconnait pas non plus

        getWritableDatabase


        Merci de bien vouloir m'aider

        rapidego

        -
        Edité par rapidego 23 février 2017 à 22:59:36

        • Partager sur Facebook
        • Partager sur Twitter
          27 février 2017 à 22:30:52

          Bonsoir

          J'ai vraiment des difficultés à résoudre ce problème d'affichage des lignes

          de ma base de données dans une ListView.

          Le problème se situe à la fin du fichier GestionBdd.java dans mon code ci-dessus.

          Je serai très reconnaissant à qui voudrait bien me dépanner.

          Je ne demande pas un code tout fait mais des pistes pour m'orienter .

          Ou bien de la documentation ou livre parlant d'android et sqlite et ListView.

          Merci pour toute aide

          Cordialement

          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2017 à 13:14:17

            Pour commencer, est-ce que vous arrivez à récupérer les données de la bdd, puis les afficher ?
            • Partager sur Facebook
            • Partager sur Twitter
              28 février 2017 à 21:10:56

              Bonsoir,

              Oui ma bdd fonctionne,

              1) - j'arrive à ouvrir la bdd.

              2) - Je réussi à créer une ligne (un enregistrement).

              3) - J'insère sans problème les données dans ma bdd.

              4) - J'affiche correctement ces données dans un toast.

              J'aimerai maintenant réussir à afficher ces données dans un ListView

              Jusqu'à maintenant j'ai réussi à assembler tout seul mon code concernant ma bdd

              Cela fait trois semaine que je consulte et recherche des pistes sans succès!

              Merci pour votre aide

              Cordialement rapidego

              • Partager sur Facebook
              • Partager sur Twitter
                1 mars 2017 à 16:34:22

                Je suis plus tout à fait sûre de la démarche mais...

                ListView lv = (ListView) findViewById(Afficheliste); 

                ça c'est ok. Prochaine étape : créer un ArrayList qui contiendra chaque résultat de la requête.

                ArrayList<String> list = new ArrayList<String>();
                for (int i = 0; i < nbViande; ++i) 
                {
                    list.add(strViande);
                }


                strViande étant la ligne renvoyé par la requête (bien sûre, à vous de voir comment compléter l'ArrayList).

                Ensuite il faut un adaptateur pour le listview (liaison entre le ListView et l'ArrayList. https://developer.android.com/reference/android/widget/ArrayAdapter.html

                StableArrayAdapter adapter = new StableArrayAdapter(this, android.R.layout.simple_list_item_1, list);
                lv.setAdapter(adapter);


                Voilà, j'attend vos retours. Par la suite il faudra ajouter un Listener pour effectuer une action quand l'utilisateur appuie sur une ligne de la liste.

                -
                Edité par Evury 1 mars 2017 à 16:34:39

                • Partager sur Facebook
                • Partager sur Twitter
                  1 mars 2017 à 21:27:21

                  Bonsoir,

                   Un grand merci pour votre aide, je vais essayer et vous tenir au courant

                  Merci

                  cordialement rapidego

                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 mars 2017 à 23:35:07

                    Bonsoir

                    Il y a un petit problème.

                    J'ai des difficultés avec la ligne 51

                    list.add(strViande);

                     Je ne vois pas par quoi remplacer (strViandes)

                    J'ai modifié mon fichier Affichage1.java qui concerne la page activité qui est appelé par MainActivity.java

                    fenêtre qui devra afficher les données de la bdd.

                    comme ci-dessous:

                    package com.example.rapidego.frigo1;
                    
                    import android.support.v7.app.ActionBarActivity;
                    import android.os.Bundle;
                    import android.view.Menu;
                    import android.view.MenuItem;
                    import android.widget.AdapterView;
                    import android.widget.ArrayAdapter;
                    import android.widget.ListView;
                    import android.view.View;
                    
                    import java.util.ArrayList;
                    
                    public class Affichage1 extends ActionBarActivity
                    {
                    
                        @Override
                        protected void onCreate(Bundle savedInstanceState)
                        {
                            super.onCreate(savedInstanceState);
                            setContentView(R.layout.activity_affichage1);
                    
                        //***************essai aide forum****************************
                    
                            //Creation d'une instance de la classe GestionBDD(creer la Bdd)
                            GestionBDD bddViandes = new GestionBDD(this);
                    
                            //On ouvre la base de donnees
                            bddViandes.open();
                    
                            //Creation d'une ligne pour une viande
                            Viandes decoupe = new Viandes("boeuf", "cote", "4", "BG");
                    
                            // insertion d'une viande
                            bddViandes.insertViandes(decoupe);
                    
                    
                    
                             /*Pour verifier si on a bien creer notre decoupe dans la BDD
                            *on extrait la decoupe de la BDD grace au titre de la decoupe
                            que l'on a creer precedemment */
                            Viandes decoupePourBdd = bddViandes.getViandesWithTitre(decoupe.getType());
                          //********************incorporation du code de l'aide du forum*******************
                    
                            //recuperation du listview present dans notre IHM
                            ListView lv = (ListView) findViewById(R.id.Afficheliste);
                    
                            ArrayList<String> list = new ArrayList<String>();
                            for (int i = 0; i < getTaskId(); ++i)
                            {
                                list.add(strViande);
                            }
                    
                    
                            ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
                            lv.setAdapter(adapter);
                    
                        }

                    Très  Cordialement

                    rapidego






                    -
                    Edité par rapidego 2 mars 2017 à 23:48:09

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mars 2017 à 9:06:50

                      Bonjour,

                      strViande est un String d'une ligne de la table viande.

                      Il faut donc crée une méthode getViandesList qui retournera un ArrayList<String>.

                      - Faire la requete bdd.query()

                      - Parcourir le cursor pour compléter l'ArrayList -> list.add(c.getString(NUM_COL_TYPE)+c.getString(NUM_COL_ETAT)/*etc*/)

                      - Retourner l'ArrayList

                      Ainsi, à la place de la boucle for dans MainActivity il suffira de déclarer :

                      ArrayList<String> list = new ArrayList<String>();
                      list = bddViandes.getViandesList();
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 mars 2017 à 22:35:34

                        Bonsoir,

                        Je n'ai plus aucune erreur dans le code j'ai suivi vos instructions dont je vous en remercie.

                        1 - Je compile et je lance l'appli sur mon terminal motorola .

                        2 - Ma première page MainActivity.java s'ouvre sans problème avec ma liste pour lancer la

                        deuxième activité .

                        3 - Là problème mon application plante et pourtant il n'y a pas d'erreurs lors du make ou rebuild ou clean.

                        Ci-dessous mon code modifié:

                        Fichier Affichage1.java

                        package com.example.rapidego.frigo1;
                        
                        import android.os.Bundle;
                        import android.support.v7.app.ActionBarActivity;
                        import android.view.Menu;
                        import android.view.MenuItem;
                        import android.widget.ArrayAdapter;
                        import android.widget.ListView;
                        import android.widget.Toast;
                        import java.util.ArrayList;
                        
                        public class Affichage1 extends ActionBarActivity
                        {
                        
                            @Override
                            protected void onCreate(Bundle savedInstanceState)
                            {
                                super.onCreate(savedInstanceState);
                                setContentView(R.layout.activity_affichage1);
                        
                                //Creation d'une instance de la classe GestionBDD(creer la Bdd)
                                GestionBDD bddViandes = new GestionBDD(this);
                        
                                //On ouvre la base de donnees
                                bddViandes.open();
                        
                                //Creation d'une ligne pour une viande
                                Viandes decoupe = new Viandes("boeuf", "cote", "4", "BG");
                        
                                // insertion d'une viande
                                bddViandes.insertViandes(decoupe);
                                //Si une decoupe est retournee (donc si la decoupe a bien ete ajoutee a la Bdd
                                //ici on affiche les infos de la decoupe dans un toast
                               Viandes decoupePourBdd = bddViandes.getViandesWithTitre(decoupe.getType());
                        
                                if (decoupePourBdd != null)
                                {
                                    Toast.makeText(this, decoupePourBdd.toString(), Toast.LENGTH_LONG).show();
                                }
                        
                                //recuperation du listview present dans notre IHM
                                ListView lv = (ListView) findViewById(R.id.Afficheliste);
                        
                                //**********************aide suivant aide Evury***********************
                                ArrayList list = new ArrayList<String>();
                        
                                 list = bddViandes.getViandesList(list);
                        
                                //Creation de l'adapter
                                ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list);
                        
                                // on passe nos donnees au composantListView
                                lv.setAdapter(adapter);
                        
                            }   //*****************fin de laméthode onCreate*************************************
                        
                         
                            }
                        Pas de message d'erreurs et pourtant à l'ouverture de l'activity_affichage1
                        l'application plante !

                        Merci si vous pouvez m'aider, je pense être près du but.

                        Cordialement et un grand merci pour votre aide

                        rapidego





                        -
                        Edité par rapidego 11 mars 2017 à 20:39:43

                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mars 2017 à 22:42:49

                          Bonsoir

                          Malgré tous mes essais je n'arrive pas à afficher mon embryon de Bdd avec une ListView !

                          Si je laisse l'essai de la ListView de côté mon application marche et mon toast m'affiche

                          en deuxième fenêtre les données complètes.

                          Pourtant ma compilation ne marque pas d'erreur avec gradle.

                          A plus

                          rapidego

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Afficher les données d'une BDD dans un Listview

                          × 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