Bonjour à tous. D'ordinaire je me débrouille pour trouver réponses à mes questions sur votre forum, mais cette fois je suis assez bloqué et j'en fais appel à votre expérience. Je suis programmeur débutant sous android dans le cadre d'un projet et j'ai un petit soucis avec une ListView.
En gros, j'ai:
- Crée un objet Eleve qui a pour principaux champs un nom et un status (String)
- Crée un tableau d'Eleves
- A partir du tableau, crée un tableau de String[][] dans lequel je place le nom à gauche et le statut à droite
- Insérer ce String dans un SimpleAdapter pour avoir le nom à gauche sur ma listview et le statut a droite.
Jusque là tout va bien, j'ai ma liste, je peux défiler, sauf que, je voudrais que sur un clic sur un objet de ma liste, celui-ci passe du statut présent à absent. Je m'étais débrouiller avec une méthode un peu vite-fait, a chaque fois que je cliquer sur l'objet, je changeais son statut et je détruisais, récréais la liste. Le soucis avec cette méthode, c'est que si je déroule et que je clique, je reviens au début. J'aimerais savoir comment actualiser ma liste pour qu'elle change le statut tout seul? J'ai voulu essayer avec un invalidate, mais cela ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { if (ListeEleve[position].getPresentFlag() == false) { ListeEleve[position].setPresent(); } else { ListeEleve[position].setAbsent(); } AffEleve[position][1] = ListeEleve[position].get_Status(); visual_update(); }Merci d'avance pour votre aide =).
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 public void visual_update() { HashMap<String, String> content; List<HashMap<String, String>> liste = new ArrayList<HashMap<String, String>>(); for (i=0;i<Promosize;i++) { content = new HashMap<String, String>(); content.put("text1", AffEleve[i][0]); content.put("text2", AffEleve[i][1]); liste.add(content); } Update = new SimpleAdapter(this,liste,R.layout.simple_list_custom,new String[] {"text1", "text2"},new int[] {android.R.id.text1, android.R.id.text2 }); Liste.setAdapter(Update); }
Partager