3

我正在尝试使用 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);

4

0 回答 0