0
我在onLoadFinished中爲我的Loader管理器回調中的代碼段添加了一行代碼。代碼的問題在於,需要在ArrayAdapter中顯示favoriteMovies,所以出於某種原因,當log語句顯示遊標或數據不爲空時,它爲零。從加載程序管理器onLoadFinished中的光標中提取數據
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
Log.i(TAG, "Loader Manager Loading Finished: " + data.getCount());
if (data != null && data.getCount() > 0) {
while (data.moveToNext()) {
favouriteMovies.add(
new Movie(
data.getString(2),
data.getString(3),
data.getString(4),
data.getInt(1),
data.getString(5),
data.getDouble(6),
data.getDouble(7)
));
}
setMovies(favouriteMovies);
hideLoadingProgress();
mAdapter.notifyDataSetChanged();
} else {
showEmptyView(EMPTY_VIEW_TYPE_LOCAL);
hideLoadingProgress();
}
}
如何編寫此代碼,以便在調用setMovies()方法之前實際等待while語句完成。當我將應用程序最小化爲背景並將其恢復時,電影會顯示出來,但它在第一次調用時不起作用。
'「與代碼的問題是需要favoriteMovies顯示在一個ArrayAdapter」',那確實,這是一個問題,不使用'ArrayAdapter'用'基於Cursor'數據處理時,使用'SimpleCursorAdapter'代替(或任何其他的'CursorAdapter') – pskink
你是對的,但SimpleCursorAdapter不會作爲數據的一部分從服務器獲得作爲JSON使用翻新映射到模型,所以我有兩個數據源。 – Po10cio
然後使用'MatrixCursor',最有可能與'MergeCursor' – pskink