MGD Software
Messages postés193Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention23 avril 2022
-
12 nov. 2020 à 15:48
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023
-
22 janv. 2021 à 11:48
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.
MGD Software
Messages postés193Date d'inscriptionvendredi 1 septembre 2006StatutMembreDernière intervention23 avril 20222 20 janv. 2021 à 15:55
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.