0

SimpleAdapterを使用してListViewでSectionIndexerを使用しようとしています。

配列に約30個の要素があり、ペアの各要素が同一である場合(つまり、i == j)を除いて、30個の要素のすべてのペアを考慮してリストが作成されています。

したがって、リストの各項目には、2つのテキストビューと1つのチェックボックスが含まれます。テキストビューがどのように構成されているかを説明するだけです。

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

row2:textview1:午後(...)textview2:battery_chargeing(....)

行3:textview1:午後(...)

などなど

したがって、基本的に、最初のTextViewはすべて、そのTextViewとのすべてのペアが消費されるまで同じです。

このリストには約900(正確には870)のエントリが含まれているため、FastScrollingを使用してSectionIndexingを実装しようとしました。

両方の方法は理解していますが、説明できない問題が発生しているようです。

スクロールすると、現在の文字を表示するオーバーレイが常にリスト内の現在の位置より1つ進んでいるように見えます。

私はこれに頭を悩ませようとしていますが、理由がわかりません。

コードを投稿することはできますが、何も悪いことはしていないと確信しています。

これで私が考えることができる唯一の欠陥は、同じ文字で始まるすべての単語が同一であるという事実です。

ありがとう

4

1 に答える 1

0

これを使わなければならなかったことがわかった

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

とは対照的に

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

インデクサーマップを作成していたとき。

念のため、2番目のforループが機能しない理由は、マップ内の各文字がその文字の最後のインデックスにマップされているためです。

代わりに、各文字は最初に出現したときにインデックスにマップする必要があります。したがって、Aの場合は30ではなく0になります(30はAで始まるアイテムの数です)。

于 2011-05-26T23:50:23.567 に答える