Bonjour,
J'ai un petit souci que je n'arrive pas à régler depuis un long moment malgré toutes mes recherches donc je viens demander votre aide.
J'ai dans ma base de données des personnes qui ont chacune un nom , un prénom et l'id correspondant à la ressource d'une image associé déjà présente dans les drawable. Bref, en clair je fais une listView qui est initialisé à partir de cette base donc qui affiche l'image, le nom et le prénom de chaque personnes.

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
	public void dataBind() {
		Cursor cursor = personne.selectionner();
		this.startManagingCursor(cursor);
		SimpleCursorAdapter adapter = new SimpleCursorAdapter (this,
				R.layout.cursor_personne, cursor, new String[]{PersonneDAO.NOM,
				PersonneDAO.IMAGE,PersonneDAO.PRENOM
				}, new int[]{R.id.nom,R.id.icon,R.id.prenoml});
		adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
 
			@Override
			public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
				// TODO Auto-generated method stub
				if (view.getId()==R.id.icon) {
 
 
					image = (ImageView) view;
					new DownloadImage().execute(cursor.getInt(3),image);
 
					return true;
				}
				return false;
			}
		});
		this.setListAdapter(adapter);
	}

Le nom et les prénoms sont correctement associées. Mais concernant l'image, rien à faire, elles ne sont pas correctement associés à la bonne personne. En déroulant la liste, certains items changent même d'image. Je voudrais juste associer aux différents items leurs images correspondantes.


Informations supplémentaires :

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
private void setImage (Bitmap image2,ImageView image) {
		image.setImageBitmap(image2);
		Log.d("TELECHARGEMENT","fini");
	}
 
	public class DownloadImage extends AsyncTask<Integer, Integer, Bitmap>{
 
		ImageView im;
		@Override
		protected Bitmap doInBackground(Integer... arg0) {
			// TODO Auto-generated method stub
			return downloadImage(arg0[0]);
		}
 
		public void execute(Integer id, ImageView image) {
			// TODO Auto-generated method stub
			im=image;
			this.execute(id);
		}
 
		protected void onPostExecute (Bitmap image) {
			setImage(image,im);
		}
 
		private Bitmap downloadImage(Integer id) {
			BitmapFactory.Options options = new BitmapFactory.Options();
			options.inSampleSize=8;
			Bitmap profil=BitmapFactory.decodeResource(getResources(),id,options);
 
			return profil;
			}
	}
Merci