我使用內容觀察器。在onQuery中,我使用setNotificationUri來註冊uri。 在bulkInsert/insert方法中,我添加了notifyChange方法調用。 bulkInsert或insert後,CursorLoader.onLoadFinished方法被調用。在onLoaderFinished方法中:adapter.swapCursor也被調用。 但CursorAdapter newView/getView沒有被調用。 我重寫了getCount方法以及CursorAdapter。我能夠得到遊標數。 請幫忙。 在此先感謝。CursorAdapter newView/BindView沒有被調用
MainActivity onCreate contains:
mGridView = (GridView) findViewById(R.id.grid_view);
mMovieCursorAdapter = new MoviesCursorAdapter(this, null, 0);
mGridView.setAdapter(mMovieCursorAdapter);
getSupportLoaderManager().initLoader(MOVIE_LOADER, null, this);
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
Uri uri = MovieContract.MovieEntry.CONTENT_URI;
return new CursorLoader(this, uri, null, null, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
mMovieCursorAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mMovieCursorAdapter.swapCursor(null);
}
In ContentProvider query() method:
retCursor.setNotificationUri(getContext().getContentResolver(), uri);
**In bulkInsert() method:**
getContext().getContentResolver().notifyChange(uri, null);
你能分享更多的代碼和細節 –