Bonjour à tous,
J'ai trouvé des sujet similaires à mon problème, différentes solutions pour afficher les données issues d'une requête SQL dans une listview mais je n'y arrive pas Je me suis inspiré à partir de ceci : http://www.developpez.net/forums/d12...lite-listview/
Extrait de ma page filtre.xml (affiche la listview contenant les villes) :
Extrait de ma page filtre.java (code permettant d’incorporer les données dans la listeview) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <ListView android:id="@+id/liste_villes" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/button_ajouter_ville" android:layout_alignLeft="@+id/explication_cible" android:layout_below="@+id/explication_cible" > </ListView>
MySQLiteDatabase.java :
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 //Récupération de la listview dans filtre.xml maListViewPerso = (ListView) findViewById(R.id.liste_villes); // On ouvre la base de données VillesBDD villeBdd = new VillesBDD(filtre.this); villeBdd.read(); Cursor c = villeBdd.getAllName(); startManagingCursor(c); //Création d'un SimpleAdapter qui se chargera de mettre les items présent dans notre list (listItem) dans la vue affichagevilles SimpleCursorAdapter mSchedule = new SimpleCursorAdapter(this.getBaseContext(), R.layout.filtre, c, new String[] {"NOM"}, new int[] {R.id.ville}); //On attribut à notre listView l'adapter que l'on vient de créer maListViewPerso.setAdapter(mSchedule);VillesBDD.java :
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 package com.christopherc.controlesdepolice; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteDatabase extends SQLiteOpenHelper { private static final String TABLE_VILLES = "table_villes"; private static final String COL_ID = "ID"; private static final String COL_NOM = "NOM"; private static final String CREATE_TABLE_VILLES = "CREATE TABLE " + TABLE_VILLES + " (" + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL);"; public MySQLiteDatabase(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /** * Cette méthode est appelée lors de la toute première création de la base * de données. Ici, on doit créer les tables et éventuellement les populer. */ @Override public void onCreate(SQLiteDatabase db) { // on crée la table table_contacts dans la BDD db.execSQL(CREATE_TABLE_VILLES); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // on supprime la table table_contacts de la BDD et on recrée la BDD db.execSQL("DROP TABLE " + TABLE_VILLES + ";"); onCreate(db); } }Voici l'erreur que j'ai :
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131 package com.christopherc.controlesdepolice; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class VillesBDD { private static final int VERSION_BDD = 1; private static final String NOM_BDD = "villes.db"; private static final String TABLE_VILLES = "table_villes"; private static final String COL_ID = "ID"; private static final int NUM_COL_ID = 0; private static final String COL_NOM = "NOM"; private static final int NUM_COL_NOM = 1; private SQLiteDatabase bdd; private MySQLiteDatabase maBaseSQLite; public VillesBDD(Context context) { maBaseSQLite = new MySQLiteDatabase(context, NOM_BDD, null, VERSION_BDD); } /** * Ouvre la BDD en écriture */ public void open() { bdd = maBaseSQLite.getWritableDatabase(); } /** * Ouvre la BDD en lecture */ public void read(){ bdd = maBaseSQLite.getReadableDatabase(); } /** * Ferme l'accès à la BDD */ public void close() { bdd.close(); } public SQLiteDatabase getBDD() { return bdd; } /** * Insère une ville en base de données */ public long insertVille(Ville ville) { ContentValues values = new ContentValues(); // On insère les valeurs dans le ContentValues : on n'ajoute pas // l'identifiant car il est créé automatiquement values.put(COL_NOM, ville.getNom()); return bdd.insert(TABLE_VILLES, null, values); } /** * Met à jour la ville en base de données */ public int updateVille(int id, Ville ville) { ContentValues values = new ContentValues(); values.put(COL_NOM, ville.getNom()); return bdd.update(TABLE_VILLES, values, COL_ID + " = " + id, null); } /** * Supprime une ville de la BDD (celui dont l'identifiant est passé en * paramètres) */ public int removeVilleWithID(int id) { return bdd.delete(TABLE_VILLES, COL_ID + " = " + id, null); } /** * Retourne la premiere ville dont le nom correspond à * celui en paramètre */ public Ville getFirstVilleWithName(String Nom) { Cursor c = bdd.query(TABLE_VILLES, new String[] {COL_ID, COL_NOM}, COL_NOM + " LIKE \"" + Nom +"\"", null, null, null, null); return cursorToVille(c); } public Cursor getAllName() { Cursor c = bdd.query(TABLE_VILLES, new String[] {COL_NOM + " AS NOM"}, null, null, null, null, null); return c; } /** * Convertit le cursor en ville */ private Ville cursorToVille(Cursor c) { // si aucun élément n'a été retourné dans la requête, on renvoie null if (c.getCount() == 0) return null; // Sinon on se place sur le premier élément c.moveToFirst(); Ville ville = new Ville(); ville.setId(c.getInt(NUM_COL_ID)); ville.setNom(c.getString(NUM_COL_NOM)); c.close(); return ville; } /** * Convertit le cursor pour plusieurs villes */ private Ville cursorToMultiVille(Cursor c) { // si aucun élément n'a été retourné dans la requête, on renvoie null if (c.getCount() == 0) return null; // Sinon on se place sur le premier élément c.moveToFirst(); Ville ville = new Ville(); ville.setId(c.getInt(NUM_COL_ID)); ville.setNom(c.getString(NUM_COL_NOM)); c.close(); return ville; } }
The method startManagingCursor(Cursor) from the type Activity is deprecated (le startManagingCursor(c) est barré d'un trait).
The constructor SimpleCursorAdapter(Context, int, Cursor, String[], int[]) is deprecated (le SimpleCursorAdapter est barré d'un trait).
Si vous avez besoin d'information complémentaire n'hésitez pas Un grand merci d'avance pour votre aide
Partager