Bonjour à tous.

Je suis occupé à développer une application sous android. Tout avance bien mais là je suis un peu bloqué.

Je souhaite tout simplement créer une listview (contenant simplement des noms) triée et avec des entêtes de section reprenant la première lettre du nom.
Donc exactement ce qui s'affiche dans la liste des contacts du téléphone.

J'ai don cherché sur internet et je me suis lancé avec ceci ce tuto.

Premier problème, la hashmap créée dans la fonction getSortedData n'est pas triée.
L'arraylist objects est pourtant bien triée.

Au départ : [anom1,anom2,anom3,bnom1,bnom2,cnom1,cnom2,...]
A l'arrivée : d->[dnom1,dnom2],a->[anom1,anom2,anom3],b->...

J'ai résolu le problème en utilisant une linkedhashmap mais ça ne m'explique pas pourquoi la hashmap change l'ordre des clés.

Deuxième problème, qui me bloque.

La liste m'affiche

[header]a
[section]anom1
[section]anom2
[section]anom3
...
[header]d
[section]dnom1
[section]dnom2
[header]dnom3
[section]dnom4
[section]e
[section]enom1
[header]anom2
....

Donc tout est bon, sauf que à partir d'un certain niveau, les headers semblent se décaler.

Et j'ai essayé de commencer ma liste de nom à dnom1 (mes données proviennent d'une requête sql). Le début de la liste est bon (donc le problème ne vient pas de dnom3) mais plus bas, idem.

Donc ... le code fourni n'est pas exact ? j'ai un problème dans mon code (pourtant j'ai bien re-re-re-vérifié) ? j'ai testé dans l'émulateur et sur le téléphone. Idem.