按下CursorAdapter getCount 0

时间:2014-10-30 17:26:24

标签: android

我正在从cursorLoader加载cursoradpater。当我第一次打开片段时,它按预期工作。但是当我转到具有相同加载器ID的另一个片段并返回时,当Adapter.getCursor()。getCount()返回时,Adapter.getCount()返回0.我将getCount方法跟踪到

public int getCount() {
    if (mDataValid && mCursor != null) {
        return mCursor.getCount();
    } else {
        return 0;
    }
}

问题是mDataValid为false;当我尝试重新启动加载程序时,它仍然认为它无效。如何保持我的适配器有效?

1 个答案:

答案 0 :(得分:1)

您发布了一小部分代码,但我会尽力帮助您。每次数据集失效(或mDataValid为false)时,您都需要调用changeCursor()。它基本上意味着数据库已更改,适配器需要重建其缓存的数据。

我假设你的适配器中有一个DataSetObserver?如果是这样,只需在onInvalidated()方法中调用changeCursor。如果你没有,请留言,我会帮你添加一个适配器。