Accéder à chacun des items d'un listview

Signaler
Messages postés
188
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
20 janvier 2021
-
Messages postés
5361
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 mars 2021
-
Bonjour,

Dans un listview, sur le clic d'un item, je souhaite colorer cet item. Ça, ça fonctionne.
Problème : lorsqu'on clique sur un autre item, je ne sais pas décolorer le premier.
J'ai essayé avec un boucle d'accéder à chaque item, mais ça ne fonctionne pas.
Je n'arrive pas à accéder à l'item n du listview.
Il doit bien y avoir une fonction du genre View v = MonListview.getItem(i) qui ramène une vue, à l'instar du paramètre view de la fonction OnItemClick(i).
Quelqu'un connait-il la solution ?
Voici le code de l'adaptateur OnItemClick (qui ne fonctionne pas, GetView n'existe pas)
private final AdapterView.OnItemClickListener lvwFrames_Click = new AdapterView.OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        SetAddMode( false );
        InputLayout.setVisibility( View.GONE );
        for(int i = 0; i < lvwFrameList.getCount(); i++) {
            View v = (View)lvwFrameList.getView(i);
            v.setBackgroundColor( 0xFFFFFFFF );
        }
        view.setBackgroundColor( SelColor );
    }
};


Merci.

Note : je voudrais éviter de mémoriser l'item coloré, c'est une méthode qui me paraît pas propre et sujette à problème en cas de désynchronisation. De plus, les vues d'un listview étant créées de façon dynamique, je ne suis pas sûr de retomber sur la bonne.


3 réponses

Messages postés
5361
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 mars 2021
108
Salut,

Plusieurs solutions: ICI

Dev addict
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..." 
Messages postés
188
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
20 janvier 2021
2
Merci, mais ce lien explique comment colorer l'item sélectionné. Comme je l'ai dit, çà, je sais le faire.
Mais lorsque l'on clique sur l'item à colorer, le précédent n'est plus sélectionné. Le problème est donc d'accéder à chacun des items de la liste par itération et détection de couleur, pour le changer de couleur.
Messages postés
5361
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 mars 2021
108
Salut,

Je sais bien... mais il y a également différentes propositions pour restaurer la couleur d'un item désélectionné.