所以我有一个带有列表视图的活动,它通过游标动态更新。只需将查询命令重新分配给该变量,即可重用游标对象,该变量返回一组全新的数据。这工作正常。问题是我已经扩展了 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。每次单击选项卡时,alpha 变量都会被清空。看起来索引器有视图cahcing。
谢谢