Bonsoir à tous,

J'ai un problème concernant une ListView à laquelle j'attache un SimpleAdapter. Chaque ligne de la liste se réfère donc à un layout qui contient 3 TextView ainsi qu'une ImageView. Mon souci est que l'un des String (celui que j'appelle contenu) doit conditionner la couleur de chaque ligne (j'ai déjà codifié cette condition, et je sais que je dois appeler setBackgroundColor()). Le problème est que je ne sais pas quelle méthode appeler pour changer la couleur des lignes à l'initialisation de la liste. J'ai essayé d'implémenter getView() mais ça me renvoie des NullPointerException... Voici le code que j'utilise:

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
listView_commentaires = (ListView) findViewById(R.id.liste_favoris);
daofavoris = new DAOFavoris(FavorisActivity.this);
daofavoris.open();
List<Commentaire> response = new ArrayList<Commentaire>();
response = daofavoris.getAllFavoris();
try {
favoris = new ArrayList<HashMap<String, Object>>();
for (Commentaire commentaire : response) {
HashMap<String, Object> element;
element = new HashMap<String, Object>()
byte[] miniature = commentaire.decodeMiniature();
Bitmap bitmap = BitmapFactory.decodeByteArray(miniature, 0, miniature.length);
element.put("BITMAP", bitmap);
element.put("CONTENU", commentaire.getContenu());
element.put("AUTEUR", commentaire.getAuteur());
element.put("DATE", Constantes.getRealDate(commentaire.getDate()));
favoris.add(element);
}
simpleAdapter = new SimpleAdapter(FavorisActivity.this,
favoris, R.layout.favoris_liste, new String[] {
"BITMAP", "CONTENU", "AUTEUR", "DATE" },
new int[] { R.id.media_favoris,
R.id.favoris_contenu,
R.id.favoris_auteur,
R.id.favoris_timestamp });
simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
if ((view instanceof ImageView)
& (data instanceof Bitmap)) {
ImageView iv = (ImageView) view;
Bitmap bm = (Bitmap) data;
iv.setImageBitmap(bm);
return true;
}
return false;
}
});
listView_commentaires.setAdapter(simpleAdapter);
Pourriez vous m'indiquer comment changer la couleur de chaque ligne selon ma variable contenu? D'avance merci beaucoup