SimpleCursorAdapter,交换API级别低于11的游标

时间:2012-06-14 07:21:02

标签: android cursor

尝试实现LoaderManager + CursorLoader。

在onFinish方法中,适配器应交换其光标

  public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    // Swap the new cursor in.  (The framework will take care of closing the
    // old cursor once we return.)
    mAdapter.swapCursor(data);
  }

但是自API级别11以来,swapCursor可用。

那么我应该如何在android API 10中交换光标?

2 个答案:

答案 0 :(得分:9)

答案 1 :(得分:0)

如果你按照Android Studio建议来包装和swapCursor解释旧光标没有关闭,使用android.widget.CursorAdapter,你会得到:

public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        mAdapter.swapCursor(data);
    } else {
        Cursor oldCursor = mAdapter.getCursor();
        mAdapter.changeCursor(data);
        oldCursor.close();
    }
}