【发布时间】:2016-09-18 07:53:30
【问题描述】:
我正在尝试使用 Cursor loader 使用来自 DB 的数据填充我的 UI。
下面是我的 onCreateLoader()
@Override
public Loader < Cursor > onCreateLoader(int id, Bundle args) {
String sortingOrder = MovieContract.Movie.COLUMN_RATING + " ASC";
Uri uri = MovieContract.Movie.buildMovieDbUri();
Log.v(LOG_TAG, "URI: " + uri.toString() + " sorting: " + sortingOrder);
Cursor c = getActivity().getContentResolver().query(uri, MOVIE_PROJECTION, null, null, sortingOrder);
if (c.moveToFirst())
Log.v(LOG_TAG, "Movie ID: " + c.getInt(PROJ_MOVIE_ID - 1));
else
Log.v(LOG_TAG, "Fail");
CursorLoader cc = new CursorLoader(getActivity(),
uri,
MOVIE_PROJECTION,
null,
null,
sortingOrder);
return cc;
}
@Override
public void onLoadFinished(Loader < Cursor > loader, Cursor data) {
mAdapter.swapCursor(data);
}
例外
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.database.Cursor itsme.com.moviecatalogue.GridViewAdapter.swapCursor(android.database.Cursor)'
在上面的代码中,光标 c 正确地获取了所有数据。但是我在onLoadFinished() 中的swapCursor() 上得到一个NullPointerException。我不明白我做错了什么。
【问题讨论】:
标签: java android sqlite nullpointerexception android-cursorloader