2011-05-26 7 views
0

J'essaie d'utiliser SectionIndexer dans ListView en utilisant un SimpleAdapter. J'ai une trentaine d'éléments dans une matrice et la liste est construite en considérant chaque paire des 30 éléments sauf si chaque élément de la paire est identique (i.e i == j).android - SimpleAdapter + SectionIndexer

Chaque élément de la liste contient donc deux vues de texte et une case à cocher. juste pour expliquer comment les textviews sont structurés:

row1: textview1: l'après-midi (...) textview2: à (....)

row2: textview1: l'après-midi (...) textview2: battery_charging (....)

row3: textview1: l'après-midi (...)

etc etc

donc en gros tous les premiers TextView est le même jusqu'à ce que toutes les paires avec ce TextView ont été consommés.

Étant donné que cette liste contient environ 900 entrées (870 pour être précises), j'ai essayé d'implémenter SectionIndexing avec FastScrolling.

Bien que je comprenne comment faire les deux, il semble que je rencontre un problème que je ne peux pas expliquer.

Il semble que lorsque je défile, l'incrustation qui affiche la lettre en cours est toujours en avance sur la position actuelle dans la liste. J'essaye de travailler ma tête autour de ceci mais je ne comprends pas pourquoi.

Je peux poster du code, mais je suis à peu près sûr que je ne fais rien de mal.

Le seul défaut que je peux penser à ceci est le fait que tous les mots qui commencent par la même lettre sont identiques.

grâce

Répondre

0

il se sont avérés je devais utiliser ce

for (int i = size - 1; i >= 0; i--) 

par opposition à

for (int i = 0; i<size; i++)

quand je créais la carte indexeur. Par souci d'intérêt, la raison pour laquelle la deuxième boucle ne fonctionne pas est que chaque lettre de la carte est mappée sur le dernier index de cette lettre. A la place, chaque lettre doit correspondre à l'index lors de sa première apparition. donc pour A ce serait 0 et non 30 (où 30 est le nombre d'items qui commencent par A).

Questions connexes