AlphabetIndexer setCursor не обновляет свой кеш

Я пытаюсь реализовать быструю прокрутку с помощью AlphabetIndexer, но когда курсор изменяется, это не обновляет индексный chache. В своем конструкторе CursorAdapter я вызываю setCursor (cursor) , но ничего не меняется, и согласно документации:

Ваш адаптер отвечает за обновление курсора путем вызова setCursor (Cursor), если курсор изменяется. getPositionForSection (число) выполняет двоичный поиск начального индекса данного раздел (алфавит).

Но ничего не происходит. Я использую это для фильтра поиска, поэтому, когда я ищу контакты, он обновляет список контактами, поэтому AlphabetIndexer должен работать для обновления индекса новых элементов в списке.

Пример: весь мой список начинается с контакты, которые начинаются с буквы «А» и заканчиваются контактами, которые начинаются с буквы «Е». Таким образом, AlphabetIndexer будет иметь эти индексы в своем кэше.

Но давайте попробуем найти контакты с помощью 'C', и скажем, у меня есть 250 контактов, которые начинаются с 'C'. Итак, мне нужно быстро просмотреть эти контакты, и должен отображаться индекс 'C', но вместо только 'C' он показывает все индексы, которые были показаны, когда у меня был весь список.

Вот мой конструктор CursorAdapter где я вызываю setCursor (курсор) для каждой буквы, которую я набираю:

public MyCursorAdapter(Context context, Cursor cursor, ArrayList<Integer> ids) 
        {
            super(context, cursor);
            try
            {
                mAlphaIndexer = new AlphabetIndexer(cursor, cursor.getColumnIndexOrThrow("Name")," ABCDEFGHIJKLMNOPQRSTUVWXYZ");
                notifyDataSetChanged(); 
                mAlphaIndexer.setCursor(cursor);        
                this.mSelectedContacts = ids;               
                Log.e("MyCursorAdapter", "construtor: ");
            }
            catch(Exception ex)
            {
                Log.e("MyCursorAdapter", "Error: " + ex);
            }
            finally
            {
                mAlphaIndexer.setCursor(cursor);
            }
        }
5
задан rogcg 15 July 2011 в 18:15
поделиться