Bonjour,
J'ai créé une table Jeu dans une BDD SQLite dans laquelle j'ai un attribut image de type blob. En effet, j'aimerais que mon application android récupère des images à partir de cette table. Donc j'ai fait ce qui suit:
J'ai utilisé une méthode retriveRow pour récupérer l'enregistrement qui m'intéressait dans la BDD:
Voilà le code de la méthode getRowAsArrayJeu(long ID) utilisé dans la méthode retrieveRow() par un objet db, objet d'une classe permettant de gérer les requêtes avec la BDD:
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 private void retrieveRow() { try { // The ArrayList that holds the row data ArrayList<Object> row; // ask the database manager to retrieve the row with the given rowID row = db.getRowAsArrayJeu(longstockobtenue); // update the form fields to hold the retrieved data nom.setText("Nom: "row.get(1).toString()); support.setText("Support: "+row.get(2).toString()); genre.setText("Genre: "+row.get(3).toString()); ...... ..... //Code que j'ai utilisé pour récupérer l'image bmp et l'affecter à l'ImageView img byte[] bb =(byte[]) row.get(10); img.setImageBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length)); } catch (Exception e) { Log.e("Retrieve Error", e.toString()); e.printStackTrace(); } }
Ensuite, tous les TextView apparaîssent correctement, par contre l'image ne s'affiche pas. Je ne comprends pas pourquoi.
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 public ArrayList<Object> getRowAsArrayJeu(long rowID) { ArrayList<Object> rowArray = new ArrayList<Object>(); Cursor cursor; try { cursor = db.query ( table_jeu, new String[] {je_id, je_nom, je_genre,je_support,je_editeur,je_date, je_noteamis, je_noteglobal, je_categorie,je_description,je_image}, je_id + "=" + rowID, null, null, null, null, null ); cursor.moveToFirst(); if (!cursor.isAfterLast()) { do { rowArray.add(cursor.getLong(0)); rowArray.add(cursor.getString(1)); rowArray.add(cursor.getString(2)); ....... ....... //Ajout du blob dans rowArray rowArray.add(cursor.getBlob(10)); } while (cursor.moveToNext()); } cursor.close(); } catch (SQLException e) { Log.e("DB ERROR", e.toString()); e.printStackTrace(); } // return the ArrayList containing the given row from the database. return rowArray; }
Pouvez vous m'aider s'il vous plaît?
Je vous remercie par avance
Partager