下面列出了android.support.v4.widget.ResourceCursorAdapter#android.support.v4.content.CursorLoader 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
StringBuilder buf = new StringBuilder();
if (mSearchString != null) {
buf.append('(');
buf.append(Imps.Contacts.NICKNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(" OR ");
buf.append(Imps.Contacts.USERNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(')');
buf.append(" AND ");
}
buf.append(Imps.Contacts.TYPE).append('=').append(mType);
// buf.append(" ) GROUP BY(" + Imps.Contacts.USERNAME);
CursorLoader loader = new CursorLoader(getActivity(), mUri, ContactListItem.CONTACT_PROJECTION,
buf == null ? null : buf.toString(), null, Imps.Contacts.SUB_AND_ALPHA_SORT_ORDER);
return loader;
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
StringBuilder buf = new StringBuilder();
if (mSearchString != null) {
buf.append(Imps.Contacts.NICKNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(" OR ");
buf.append(Imps.Contacts.USERNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
}
CursorLoader loader = new CursorLoader(getContext(), mUri, ContactListItem.CONTACT_PROJECTION,
buf == null ? null : buf.toString(), null, Imps.Contacts.DEFAULT_SORT_ORDER);
// loader.setUpdateThrottle(10L);
return loader;
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getActivity());
String sortOrder = prefs.getString(Config.SORT_ORDER_RECENT, Config.SORT_RECENT_DEFAULT);
String[] projection = {
RecentTable.COLUMN_TITLE,
RecentTable.COLUMN_LINK,
RecentTable.COLUMN_IMAGE,
RecentTable.COLUMN_ID,
RecentTable.COLUMN_TYPE,
RecentTable.COLUMN_NUM_SEASONS,
RecentTable.COLUMN_SEASON,
RecentTable.COLUMN_EPISODE,
RecentTable.COLUMN_NUM_EPISODES,
RecentTable.COLUMN_RATING};
return new CursorLoader(this.getActivity(),
RecentContentProvider.CONTENT_URI, projection, null, null, sortOrder);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
if (null != dict_Id) {
switch (id) {
case DETAIL_LOADER:
return new CursorLoader(getActivity(), null, Constants.DICT_COLUMNS, null, null, null) {
@Override
public Cursor loadInBackground() {
return db.getDictCursorById(Integer.parseInt(dict_Id));
}
};
default: //do nothing
break;
}
}
return null;
}
@NonNull
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Extract the search query from the Intent.
String query = getIntent().getStringExtra(SearchManager.QUERY);
// Construct the new query in the form of a Cursor Loader.
String[] projection = {
HoardDB.HoardContract.KEY_ID,
HoardDB.HoardContract.KEY_GOLD_HOARD_NAME_COLUMN,
HoardDB.HoardContract.KEY_GOLD_HOARDED_COLUMN
};
String where = HoardDB.HoardContract.KEY_GOLD_HOARD_NAME_COLUMN
+ " LIKE ?";
String[] whereArgs = {"%" + query + "%"};
String sortOrder = HoardDB.HoardContract.KEY_GOLD_HOARD_NAME_COLUMN +
" COLLATE LOCALIZED ASC";
// Create the new Cursor loader.
return new CursorLoader(this, MyHoardContentProvider.CONTENT_URI,
projection, where, whereArgs, sortOrder);
}
@NonNull
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Construct the new query in the form of a Cursor Loader. Use the id
// parameter to construct and return different loaders.
String[] projection = null;
String where = null;
String[] whereArgs = null;
String sortOrder = null;
// Query URI
Uri queryUri = MyHoardContentProvider.CONTENT_URI;
// Create the new Cursor loader.
return new CursorLoader(this, queryUri, projection,
where, whereArgs, sortOrder);
}
@Override
public Loader<Cursor> onCreateLoader(final int loaderId, final Bundle bundle) {
if (loaderId != URL_LOADER) {
return null;
}
final Activity activity = getActivity();
final Uri uriItems = Item.ITEMS_URI;
return new CursorLoader(
activity,
uriItems,
mColumns,
null, // No where clause, return all records.
null, // No where clause, therefore no where column values.
null // Use the default sort order.
);
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
*
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
// COMPLETED (23) If the loader requested is our detail loader, return the appropriate CursorLoader
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
*
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
*
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
@Override
public Loader<Cursor> onCreateLoader(int loaderID, Bundle bundle)
{
/*
* Takes action based on the ID of the Loader that's being created
*/
switch (loaderID) {
case URL_LOADER:
// Returns a new CursorLoader
return new CursorLoader(
getActivity(), // Context
DataProviderContract.PICTUREURL_TABLE_CONTENTURI, // Table to query
PROJECTION, // Projection to return
null, // No selection clause
null, // No selection arguments
null // Default sort order
);
default:
// An invalid id was passed in
return null;
}
}
/**
* Gets the corresponding path to a file from the given content:// URI
* <p>
* This must run on the main thread
*
* @param context
* @param uri
* @return the file path as a string
*/
public static String getContentPathFromUri(final Context context, final Uri uri) {
Cursor cursor = null;
String contentPath = null;
try {
final String[] proj = { MediaStore.Images.Media.DATA };
final CursorLoader loader = new CursorLoader(context, uri, proj, null, null, null);
cursor = loader.loadInBackground();
final int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
contentPath = cursor.getString(columnIndex);
} catch (final Exception e) {
Log.w(TAG, "getContentPathFromURI(" + uri.toString() + "): " + e.getMessage());
} finally {
if (cursor != null)
cursor.close();
}
return contentPath != null ? contentPath : "";
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
*
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
StringBuilder buf = new StringBuilder();
if (mSearchString != null) {
buf.append('(');
buf.append(Imps.Contacts.NICKNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(" OR ");
buf.append(Imps.Contacts.USERNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(')');
buf.append(" AND ");
}
buf.append(Imps.Contacts.TYPE).append('=').append(mType);
// buf.append(" ) GROUP BY(" + Imps.Contacts.USERNAME);
CursorLoader loader = new CursorLoader(getActivity(), mUri, ContactListItem.CONTACT_PROJECTION,
buf == null ? null : buf.toString(), null, Imps.Contacts.SUB_AND_ALPHA_SORT_ORDER);
return loader;
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
*
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
/**
* Creates and returns a CursorLoader that loads the data for our URI and stores it in a Cursor.
*
* @param loaderId The loader ID for which we need to create a loader
* @param loaderArgs Any arguments supplied by the caller
*
* @return A new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle loaderArgs) {
switch (loaderId) {
case ID_DETAIL_LOADER:
return new CursorLoader(this,
mUri,
WEATHER_DETAIL_PROJECTION,
null,
null,
null);
default:
throw new RuntimeException("Loader Not Implemented: " + loaderId);
}
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
StringBuilder buf = new StringBuilder();
if (mSearchString != null) {
buf.append(Imps.Contacts.NICKNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
buf.append(" OR ");
buf.append(Imps.Contacts.USERNAME);
buf.append(" LIKE ");
DatabaseUtils.appendValueToSql(buf, "%" + mSearchString + "%");
}
CursorLoader loader = new CursorLoader(getContext(), mUri, ContactListItem.CONTACT_PROJECTION,
buf == null ? null : buf.toString(), null, Imps.Contacts.DEFAULT_SORT_ORDER);
// loader.setUpdateThrottle(10L);
return loader;
}
public static String getPathForUri(Context context, Uri uri) {
CursorLoader cursorLoader = new CursorLoader(
context, uri, new String[]{MediaStore.Files.FileColumns.DATA},
null, null, null);
try {
final Cursor cursor = cursorLoader.loadInBackground();
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
return cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA));
}
return null;
} catch (SecurityException e) {
Toast.makeText(context, "Permission Error", Toast.LENGTH_SHORT).show();
return null;
}
}
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// This is called when a new Loader needs to be created. This
// sample only has one Loader, so we don't care about the ID.
// First, pick the base URI to use depending on whether we are
// currently filtering.
Uri baseUri;
if (mCurFilter != null) {
baseUri = Uri.withAppendedPath(People.CONTENT_FILTER_URI, Uri.encode(mCurFilter));
} else {
baseUri = People.CONTENT_URI;
}
// Now create and return a CursorLoader that will take care of
// creating a Cursor for the data being displayed.
String select = "((" + People.DISPLAY_NAME + " NOTNULL) AND ("
+ People.DISPLAY_NAME + " != '' ))";
return new CursorLoader(getActivity(), baseUri,
CONTACTS_SUMMARY_PROJECTION, select, null,
People.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
if (id == LOADER_ALL) {
return new CursorLoader(getActivity(),
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_PROJECTION,
null, null, MediaStore.Images.Media.DATE_ADDED + " DESC");
} else if (id == LOADER_CATEGORY) {
return new CursorLoader(getActivity(),
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_PROJECTION,
IMAGE_PROJECTION[0] + " not like '%.gif%'", null, MediaStore.Images.Media.DATE_ADDED + " DESC");
}
return null;
}
@Override
public Observable<List<Item>> getCommentsForStoryObservable(Item item) {
CursorLoader cursorLoader = new CursorLoader(mContext, HackerNewsData.Items.CONTENT_URI, null,
HackerNewsData.Items.Selection.COMMENTS_FOR_STORY,
HackerNewsData.Items.Selection.getCommentsForStoryArgs(item.getId()),
HackerNewsData.Items.SortOrder.SCORE_DESC_SORT_ORDER);
return Observable.create(new LoaderInitializingOnSubscribe<>(COMMENT_LOADER, mLoaderManager, cursorLoader, mDataConverter));
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
return new CursorLoader(
context,
PluginContract.PluginLog.CONTENT_URI,
PluginContract.PluginLog.PROJECTION,
null,
null,
PluginContract.PluginLog.SORT_ORDER_DEFAULT
);
}
/**
* Instantiate and return a new Loader for the given ID.
*
* @param id The ID whose loader is to be created.
* @param args Any arguments supplied by the caller.
* @return Return a new Loader instance that is ready to start loading.
*/
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(mContext,
mUri,
mProjection,
mSelection,
mSelectionArgs,
mSortOrder
);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
if (!mProgressBar.isShown()) {
mProgressBar.setVisibility(View.VISIBLE);
}
String[] projection = args.getStringArray(RecordsActivity.args.projection.name());
String selection = args.getString(RecordsActivity.args.selection.name());
String[] selectionArgs = args.getStringArray(RecordsActivity.args.selectionArguments.name());
String sort = mPreferenceHelper.getSortSelection()
+ mPreferenceHelper.getSortArrange();
int limit = args.getInt(RecordsActivity.args.limit.name());
int offset = args.getInt(RecordsActivity.args.offset.name());
switch (id) {
case 0:
Uri uri = RecordDbContract.CONTENT_URL
.buildUpon()
.appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_LIMIT,
String.valueOf(limit))
.appendQueryParameter(RecordsContentProvider.QUERY_PARAMETER_OFFSET,
String.valueOf(offset))
.build();
return new CursorLoader(this, uri, projection, selection, selectionArgs, sort);
default:
throw new IllegalArgumentException("no loader id handled!");
}
}
@Override
public CursorLoader onCreateLoader(int id, Bundle args) {
Uri uri;
if (TextUtils.isEmpty(currentFilterString)) {
uri = InstalledAppProvider.getContentUri();
} else {
uri = InstalledAppProvider.getSearchUri(currentFilterString);
}
return new CursorLoader(getActivity(), uri, null, null, null, null);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(this,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
CONTACT_PROJECTION,
null,
null,
null);
}
public static CursorLoader newInstance(Context context) {
String selection;
String[] selectionArgs;
if (SelectOptions.getInstance().onlyShowImages) {
selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE);
} else if (SelectOptions.getInstance().onlyShowVideos) {
selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO);
} else {
selection = SELECTION;
selectionArgs = SELECTION_ARGS;
}
return new EssAlbumLoader(context, selection, selectionArgs);
}
public static CursorLoader newInstance(Context context) {
String selection;
String[] selectionArgs;
if (AlbumSpec.getInstance().onlyShowImages()) {
selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE);
} else if (AlbumSpec.getInstance().onlyShowVideos()) {
selection = SELECTION_FOR_SINGLE_MEDIA_TYPE;
selectionArgs = getSelectionArgsForSingleMediaType(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO);
} else {
selection = SELECTION;
selectionArgs = SELECTION_ARGS;
}
return new AlbumLoader(context, selection, selectionArgs);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(
context,
uri,
projection,
selection,
selectionArgs,
sortOrder
);
}