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:

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();
    	}
    }
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
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;
	}
Ensuite, tous les TextView apparaîssent correctement, par contre l'image ne s'affiche pas. Je ne comprends pas pourquoi.
Pouvez vous m'aider s'il vous plaît?

Je vous remercie par avance