Итак, у меня есть одно действие со списком в нем, которое динамически обновляется с помощью курсоров.Объект курсора используется повторно, просто переназначая команду запроса для этой переменной, которая возвращает целый новый набор данных.Это отлично работает.Проблема в том, что я расширил SimpleCursorAdapter для работы с AlphaIndexer.Очевидно, когда курсор обновляется или изменяется, он должен очистить индексированный кеш.Это не происходитОсновная причина всего этого заключается в том, чтобы быстрая прокрутка работала на разных переданных курсорах и работала.Прямо сейчас, при использовании разных курсоров, просмотр списка использует индексы из первого просмотра списка с попыткой быстрой прокрутки второго просмотра списка.
class AlphaCursor extends SimpleCursorAdapter implements SectionIndexer {
AlphabetIndexer alphaIndexer;
private int list_type;
public AlphaCursor(Context context, int layout, Cursor c, String[] from, int[] to, int type, String sortBy) {
super(context, layout, c, from, to);
// MUST have space in front of alphabet
int count = c.getCount();
// this.onContentChanged();doesnt do a thing
alphaIndexer = new AlphabetIndexer(c, c.getColumnIndex(sortBy), " ABCDEFGHIJKLMNOPQRSTUVWXYZ");
list_type = type;
Есть идеи, что может происходить или как очистить этот кеш?Я пробовал onChanged (), а также onContentChanged ().Кто-нибудь видел это или знает какие-либо предложения?
Код используется следующим образом:
alpha = new AlphaCursor(ClassActivity.this, R.layout.list_item, m_cursor, from, to, TAB_HOME, "name");
alpha.changeCursor(m_cursor);
mList.setAdapter(alpha);
Имейте в виду, у меня есть 4 "вкладки", которые просто запрашивают курсор и создаютновый AlphaIndexer.При каждом нажатии вкладки альфа-переменная обнуляется.Похоже, что с индексатором есть сцепление представлений.
Спасибо