6

尝试实现 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 中交换光标?

4

2 回答 2

9

兼容性库需要实现。

它是http://developer.android.com/reference/android/support/v4/widget/SimpleCursorAdapter.html

于 2012-06-14T07:26:17.430 回答
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();
    }
}
于 2017-02-17T14:27:24.787 回答