0

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

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

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

row1: textview1: 下午(...) textview2: at(....)

row2:textview1:下午(...) textview2:电池充电(....)

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

等等等等

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

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

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

看起来当我滚动时,显示当前字母的叠加层总是比列表中的当前位置早一个。

我正在努力解决这个问题,但我不明白为什么。

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

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

谢谢

4

1 回答 1

0

原来我不得不用这个

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

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

当我创建索引器映射时。

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

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

于 2011-05-26T23:50:23.567 回答