IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

[SQLite] Afficher contenu dans une ListView


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Par défaut [SQLite] Afficher contenu dans une ListView
    Bonjour ,

    J'aurais un souci pour mettre le contenu de ma Base dans une listView pour l'affichage de la dite base.

    J'ai fait mes deux Class :
    - DataBaseHelper.java (ma class de travail sqlite)
    - DatabaseListActivity (mon Main)

    J'aurais besoin d'une aide concernant la mise en place de la déclaration pour mettre dans le ListView ... Merci.

    J'ai fait mon ArrayList et mon Cursor. Mais après sa reste flou .. malgré les essais que j'ai réalisés ...
    Sa marche très bien avec la liste Statique , mais avec une list venu de la bdd je n'arrive point.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package com.database.exploit;
     
     
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
     
    public class DatabaseListActivity extends ListActivity {
     
    	/** Called when the activity is first created. */
     
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
     
     
         ListView lv1 ;
          String lv_arr[]={"Android","iPhone","BlackBerry","AndroidPeople","Symbian", "Saint-malo"};
     
         lv1=(ListView)findViewById(R.id.listView1);
         // By using setAdpater method in listview we an add string array in list.
        lv1.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
     
    }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    package com.database.exploit;
     
     
    import java.util.ArrayList;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
     
    public class DatabaseHelper extends SQLiteOpenHelper {
     
        private static String DATABASE_NAME = "ELECT.sqlite";
        private static final int DATABASE_VERSION = 4;
        private SQLiteDatabase db;
        private static String TABLE_LISTELEC = "LISTELEC1";
     
        private static String CREATE_TABLE_LISTELEC1 = "create table "
                + TABLE_LISTELEC + " ("
                + "nom TEXT NOT NULL," + "nom_marital TEXT NOT NULL"
                + "prenom VARCHAR(250) NOT NULL" +"datenaissance TEXT NOT NULL"+"bureau TEXT NOT NULL"
                + ")";
     
        public DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            db = getWritableDatabase();
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_TABLE_LISTELEC1);
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_LISTELEC);
            onCreate(db);
        }
     
     
        /**
         * Charge le contenu de la table Listelec1
         * et retourne ce contenu sous la forme d'une liste de NOM + " " + PRENOM;
         */
        public ArrayList<String> getPersonnes() {
            ArrayList<String> output = new ArrayList<String>();
     
            String[] colonnesARecup = new String[] { "nom", "prenom" };
     
            Cursor cursorResults = db.query(TABLE_LISTELEC, colonnesARecup, null,
                    null, null, null, "nom asc, prenom asc", null);
            if (null != cursorResults) {
                if (cursorResults.moveToFirst()) {
                    do {
                        int columnIdxNom = cursorResults.getColumnIndex("nom");
                        int columnIdxPrenom = cursorResults
                                .getColumnIndex("prenom");
                        String nomPrenom = cursorResults.getString(columnIdxNom)
                                + " " + cursorResults.getString(columnIdxPrenom);
                        output.add(nomPrenom);
                    } while (cursorResults.moveToNext());
                } // end§if
            }
     
            return output;
        }
     
    }
    Je crois bien que il me manque qu'une chose sur mon Main de 2 3lignes ce qui va me frustrer je le sent !

    Cordialement ,

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    J'écrirais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DatabaseHelper dbh = new DatabaseHelper();
    ListView lvListe = (ListView)findViewById(R.id.listView1); 
    lvListe.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,dbh.getPersonnes()));
    A tester

    Il faut voir ce que renvoit ta fonction dbh.getPersonnes() si cela ne fonctionne pas!


    Au passage, ta fonction getPersonnes() peut être modifiée comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     public ArrayList<String> getPersonnes() {
            ArrayList<String> output = new ArrayList<String>();
            String[] colonnesARecup = new String[] { "nom", "prenom" };
            Cursor cursorResults = db.query(TABLE_LISTELEC, colonnesARecup, null,
                    null, null, null, "nom asc, prenom asc", null);
    		while (cursorResults.moveToFirst())
    		{
    			output.add(cursorResults.getString(0) + " " + cursorResults.getString(1));
    		}				
            return output;
    }

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Par défaut
    Merci ,

    Du coup j'ai créer ma Classe : Personne.java , dans laquelle j'ai créer mes getter et Setter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package com.database.exploit;
     
    public class Personne {
     
    		private String nom;
    		private String prenom;
     
    		public Personne(String nom, String prenom) {
    			this.nom = nom;
    			this.prenom = prenom;
    		}
     
    		public Personne(){}
     
    		public String getNom() {
    			return nom;
    		}
     
    		public void setNom(String nom) {
    			this.nom = nom;
    		}
     
    		public String getPrenom() {
    			return prenom;
    		}
     
    		public void setPrenom(String prenom) {
    			this.prenom = prenom;
    		};
     
    	}
    J'ai mis le bout de code que tu m'as indiquer (j'ai du rajouter un argument "null") tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DatabaseHelper dbh = new DatabaseHelper(null);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class DatabaseListActivity extends ListActivity {
     
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
     
     
         DatabaseHelper dbh = new DatabaseHelper(null);
         ListView lvListe = (ListView)findViewById(R.id.listView1); 
         lvListe.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,dbh.getPersonnes()));
     }}
    Mais au lancement de l'application j'ai un message d'erreur..

    Caused by : java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
    du coup j'ai essayer de renommer mon "listView1" en "list" , mais sa ne devais pas venir de là , mon erreur est rester la même après...

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    remplace ton extends listActivity en Activity!

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Par défaut
    Il me met une erreur de pointer maintenant o_o !

    java.lang.RuntimeException : Unable to start activity ComponentInfo{com.database.exploit/com.database.exploit.DatabaseListActivity
    java.lang.NullPointerException
    Screen en Pièce jointe.
    Images attachées Images attachées  

  6. #6
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Pouvons nous voir ta classe en entière? Le problème viens de la ligne 22!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contenu d'une base SQLite dans une ListView
    Par NeiloSS dans le forum Composants graphiques
    Réponses: 9
    Dernier message: 25/06/2016, 02h11
  2. [Débutant] Afficher le contenu d'une listview dans des textbox
    Par Martipit dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/04/2013, 15h01
  3. Affichage du contenu d'une BDD SQLite dans une ListView
    Par mike3012 dans le forum Composants graphiques
    Réponses: 17
    Dernier message: 26/08/2012, 03h34
  4. affiché "hello" dans une listView!
    Par Bindy dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 06/05/2010, 14h23
  5. Réponses: 0
    Dernier message: 24/07/2007, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo