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 :
Merci
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; } }
Partager