我正在尝试使用 CursorLoader 在 ListFragment 中显示来自我的内容提供者的所有行。但它只显示前 10 个项目,我如何让它显示所有项目?
@Override public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
setEmptyText("No newsfeed items");
setHasOptionsMenu(false);
newsfeedCursorAdapter = new NewsfeedCursorAdapter(getActivity(), null);
this.setListAdapter(newsfeedCursorAdapter);
getActivity().getSupportLoaderManager().initLoader(0, null, this);
}
@Override public Loader<Cursor> onCreateLoader(int id, Bundle b){
return new CursorLoader(getActivity(), baseUri, projection, null, null, null);
}
@Override public void onLoadFinished(Loader<Cursor> loader, Cursor data){
newsfeedCursorAdapter.changeCursor(data);
}
@Override public void onLoaderReset(Loader<Cursor> loader){
newsfeedCursorAdapter.changeCursor(null);
}
当显示活动时,我看到:
“没有新闻源项目”,
然后intentservice
从 web 服务中提取数据并填充我的内容提供程序,通过 adb shell 从表中手动选择所有项目,我可以看到 sqlite db 中的所有 30 个项目。
内容提供商:
查询方法有 cursor.setNotificationUri(getContext().getContentResolver(), uri);
insert 方法有 getContext().getContentResolver().notifyChange(uri, null);