android - SimpleAdapter + SectionIndexer

时间:2011-05-26 23:18:59

标签: java android listview simpleadapter

我正在尝试使用SimpleAdapter在ListView中使用SectionIndexer。

我在数组中有大约30个元素,并且通过考虑每对30个元素来构建列表,除非该对中的每个元素都相同(即i == j)。

因此列表中的每个项目都包含两个文本视图和一个复选框。只是为了解释文本视图的结构:

第1行:textview1:下午(...)       textview2:at(....)

第2行:textview1:下午(...)       textview2:battery_charging(....)

第3行:textview1:下午(...)

等等

所以基本上每个第一个TextView都是相同的,直到消耗了与TextView的所有对。

由于此列表包含大约900个(准确的870个)条目,因此我尝试使用FastScrolling实现SectionIndexing。

虽然我理解如何做到这两点,但我似乎遇到了一个我无法解释的问题。

当我滚动时,显示当前字母的叠加始终位于列表中当前位置的前面。

我正试图解决这个问题,但我不明白为什么。

我可以发布代码,但我很确定我没有做错任何事。

我能想到的唯一缺陷就是所有以同一个字母开头的单词都是相同的。

感谢

1 个答案:

答案 0 :(得分:0)

事实证明我必须使用这个

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

而不是

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

当我创建索引器地图时。

仅仅是为了感兴趣,第二个for循环不起作用的原因是因为映射中的每个字母都映射到该字母的最后一个索引。

相反,每个字母在首次出现时都必须映射到索引。所以对于A,它将是0而不是30(其中30是以A开头的项目数)。