[Android] Alterner les couleurs dans une liste

Les listview sur Android sont par défaut assez tristes. Voici un exemple vous permettant d'alterner les couleurs dans votre vue, en utilisant un adapter. Dans l'exemple j'utilise un SimpleAdapter mais vous pouvez évidement reproduire l'effet sur les BaseAdapter, ArrayAdapter et les autres wink

Voici le résultat
http://www.maraumax.fr/medias/Billets/listview-couleur-alterne.jpg

La mise en place est assez simple, vous pouvez télécharger les sources à la fin du billet si jamais vous voulez plus de détail.

Créer une nouvelle classe ListViewAdapter avec le code suivant :

import java.util.HashMap;
import java.util.List;
 
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;
 
public class ListViewAdapter extends SimpleAdapter {
	private int color1 = 0xaaFF5F5F;
	private int color2 = 0xaa2F67FF;
 
	public ListViewAdapter(Context context, List<HashMap<String, String>> items, int resource, String[] from, int[] to) {
		super(context, items, resource, from, to);
	}
 
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
	  View view = super.getView(position, convertView, parent);
 
	  if(position % 2 == 0)
		  view.setBackgroundColor(color1);
	  else
		  view.setBackgroundColor(color2);
 
	  return view;
	}
}

Pour l'exemple j'ai mis les couleurs dans le code java, l'idéal étant de les mettrent dans un fichier colors.xml du dossier values pour par exemple changer la couleur en fonction d'un thème.

Il vous suffit ensuite de lier cette adapter à votre ListView en ajout la ligne suivante dans votre Activity :

// A ajouter dans l'Activity
list.setAdapter(new ListViewAdapter(this, listContent, R.layout.item, from, to));

Vous pouvez télécharger l'exemple complet à cette adresse et n'hésitez pas en cas de questions !

Billets relatifs

1 Commentaire(s)

  1. Commenté par naar le vendredi 12 juin à 02:29

    bonjour,
    merci pour le tuto c'est très clair.
    Mais pourrai je savoir comment rendre les item cliquables pour qu'ils puisse nous amener vers d'autres pages différentes?

  2. Réponse

    Salut,

    C'est un peu le même principe, au moment d'ouvrir ta nouvelle Activity tu vérifie quelle ligne a été cliquée et en fonction tu ouvre l'une ou l'autre wink

Ajouter un commentaire





Les commentaires sont validés manuellement afin d'éviter le spam.