Problème affichage dans listview [Résolu]

Signaler
Messages postés
10
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
3 juin 2020
-
Messages postés
10
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
3 juin 2020
-
Bonjour,
J'ai besoin d'un coup de pouce, je m'explique:
Je code une petite application avec base de donnée sqlite.
Ma BDD fonctionne sans problème.
Je n'arrive pas à afficher le total de mes colonnes dans le listview.
J'ai 5 colonnes comme suit: type, nom, etat, nombre, endroit
Il n'y a que la colonne type qui affiche les données.
J'ai bien personnalisé le listview j’obtiens les 5 textview.
mais il n'y a que la première de remplie!
Ci-joint la partie de code qui pose problème
Mon fichier voirListeDB
package com.example.sqlitedatabase;

import android.os.Bundle;
import android.app.Activity;
import android.widget.ListView;
import android.database.Cursor;
import android.widget.SimpleCursorAdapter;

public class voirListeDB extends Activity{

SQLiteDataBaseHelper db; // déclaration de l'objet db

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maliste);
db = new SQLiteDataBaseHelper(this);
//**********************************essai garder tout*****************************************
// Définition des colonnes
// NB : SimpleCursorAdapter a besoin obligatoirement d'un ID nommé "_id"
String[] columns = new String[] { "_id", "col1", "col2", "col3", "col4", "col5" };

// on prendra les données des colonnes 1 à 5..
String[] from = new String[] {"col1", "col2", "col3", "col4","col5"};

// ...pour les placer dans les TextView définis dans "row_item.xml"
int[] to = new int[] { R.id.textViewCol1, R.id.textViewCol2,R.id.textViewCol3,R.id.textViewCol4, R.id.textViewCol5};
//*******************************fin essai garder tout****************************************************************
ListView lv = this.findViewById(R.id.maliste);

//appel de la méthode crerColonne
Cursor data = db.crerColonne();//appel de la méthode pour obtenir l'allias _id

// création de l'objet SimpleCursorAdapter...
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.row_item, data,new String []
{"TYPE"}, new int[] {R.id.textViewCol1});

lv.setAdapter(adapter);

} //fin de onCreate

} //fin de la classe voirListeDB


J'ajoute la méthode crerColonne qui me permet d'afficher.


//méthode appelée pour faire fonctionner le simpleCursordapter
public Cursor crerColonne(){
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery("SELECT ID as _id, TYPE FROM book_table", null);

}


Merci pour votre aide cela fait un moment que je cherche dans tous les sens.

cordialement à plus

rapidegoyes




Configuration: Windows / Firefox 75.0

1 réponse

Messages postés
10
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
3 juin 2020
1
Bonsoir à tous
J'ai résolu mon problème ci-dessus concernant l'affichage dans un listView.
Il fallait tout juste apporter quelques modifs aux deux fichiers présentés.
Cela représente pour moi des soirées de recherches.

Voir extrait de code ci-dessous

        // création de l'objet SimpleCursorAdapter...
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.row_item, data,new String []
{"TYPE", "NOM", "ETAT", "NOMBRE","ENDROIT"}, new int[] {R.id.textViewCol1, R.id.textViewCol2,
R.id.textViewCol3, R.id.textViewCol4, R.id.textViewCol5});

lv.setAdapter(adapter);


puis également à la requête

    //méthode appelée pour faire fonctionner le simpleCursordapter
public Cursor crerColonne(){
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery("SELECT ID as _id, TYPE, NOM, ETAT, NOMBRE, ENDROIT, * FROM book_table", null);

}


Si cela peut servir à quelqu’un !

Cordialement à plus

rapidegoyes