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 シェルを介してテーブルからすべての項目を手動で選択することにより、sqlite db 内の 30 項目すべてを表示できます。
コンテンツ プロバイダ:
query メソッドには cursor.setNotificationUri(getContext().getContentResolver(), uri); があります。
挿入メソッドには getContext().getContentResolver().notifyChange(uri, null); があります。