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);
}

アクティビティが表示されると、次のように表示されます。

"ニュースフィード項目なし",

次に、intentserviceWeb サービスからデータを取得し、コンテンツ プロバイダーに入力します。adb シェルを介してテーブルからすべての項目を手動で選択することにより、sqlite db 内の 30 項目すべてを表示できます。

コンテンツ プロバイダ:

query メソッドには cursor.setNotificationUri(getContext().getContentResolver(), uri); があります。

挿入メソッドには getContext().getContentResolver().notifyChange(uri, null); があります。

4

0 に答える 0