更改CursorAdapter中的Cursor

sea*_*kej 4 sqlite android exception cursor

我试图改变CursorCursorAdapter这种方式:

Cursor newCursor = compiledStatement.getCursor();
startManagingCursor(newCursor);
adapter.changeCursor(newCursor);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了这个例外:

java.lang.IllegalStateException: attempt to re-open an already-closed object:
     android.database.sqlite.SQLiteQuery
Run Code Online (Sandbox Code Playgroud)

根据其他主题,应该可以在不创建新内容的情况下更改CursorAdapter的内容.

sea*_*kej 5

我发现了这个问题.我的CursorAdapter工具SectionIndexer,所以我不得不owerwrite changeCursor()方法并重置Cursorfor AlphabetIndexer.

@Override
public void changeCursor(Cursor cursor) {
    mIndexer.setCursor(cursor);
    super.changeCursor(cursor);
}
Run Code Online (Sandbox Code Playgroud)