List of usage examples for android.support.v4.content CursorLoader CursorLoader
public CursorLoader(Context context, Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder)
From source file:com.murrayc.galaxyzoo.app.QuestionFragment.java
@Override public Loader<Cursor> onCreateLoader(final int loaderId, final Bundle bundle) { if (loaderId != URL_LOADER) { return null; }//from w w w. jav a2 s. co m final String itemId = getItemId(); if (TextUtils.isEmpty(itemId)) { return null; } final Activity activity = getActivity(); final Uri.Builder builder = Item.CONTENT_URI.buildUpon(); builder.appendPath(itemId); return new CursorLoader(activity, builder.build(), mColumns, null, // No where clause, return all records. We already specify just one via the itemId in the URI null, // No where clause, therefore no where column values. null // Use the default sort order. ); }
From source file:com.nononsenseapps.notepad.ActivityMain.java
/** * Load a list of lists in the left/*from ww w. j a v a 2s .co m*/ */ protected void loadLeftDrawer() { // TODO handle being called repeatably better? // Set a listener on drawer events // TODO strings if (mDrawerToggle == null) { mDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer_dark, R.string.ok, R.string.about) { /** * Called when a drawer has settled in a completely closed * state. */ public void onDrawerClosed(View view) { getActionBar().setTitle(R.string.app_name); isDrawerClosed = true; invalidateOptionsMenu(); // creates call to // onPrepareOptionsMenu() } /** Called when a drawer has settled in a completely open state. */ public void onDrawerOpened(View drawerView) { showcaseDrawerPress(); } public void onDrawerStateChanged(int newState) { super.onDrawerStateChanged(newState); // If it's not idle, it isn't closed if (DrawerLayout.STATE_IDLE != newState) { getActionBar().setTitle(R.string.show_from_all_lists); // Is in motion, hide action items isDrawerClosed = false; invalidateOptionsMenu(); // creates call to // onPrepareOptionsMenu() } } }; // Set the drawer toggle as the DrawerListener drawerLayout.setDrawerListener(mDrawerToggle); } getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); // Use extra items for All Lists final int[] extraIds = new int[] { -1, TaskListFragment.LIST_ID_OVERDUE, TaskListFragment.LIST_ID_TODAY, TaskListFragment.LIST_ID_WEEK, -1 }; // This is fine for initial conditions final int[] extraStrings = new int[] { R.string.tasks, R.string.date_header_overdue, R.string.date_header_today, R.string.next_5_days, R.string.lists }; // Use this for real data final ArrayList<ArrayList<Object>> extraData = new ArrayList<ArrayList<Object>>(); // Task header extraData.add(new ArrayList<Object>()); extraData.get(0).add(R.string.tasks); // Overdue extraData.add(new ArrayList<Object>()); extraData.get(1).add(R.string.date_header_overdue); // Today extraData.add(new ArrayList<Object>()); extraData.get(2).add(R.string.date_header_today); // Week extraData.add(new ArrayList<Object>()); extraData.get(3).add(R.string.next_5_days); // Lists header extraData.add(new ArrayList<Object>()); extraData.get(4).add(R.string.lists); final int[] extraTypes = new int[] { 1, 0, 0, 0, 1 }; final ExtraTypesCursorAdapter adapter = new ExtraTypesCursorAdapter(this, R.layout.simple_light_list_item_2, null, new String[] { TaskList.Columns.TITLE, TaskList.Columns.VIEW_COUNT }, new int[] { android.R.id.text1, android.R.id.text2 }, // id -1 for headers, ignore clicks on them extraIds, extraStrings, extraTypes, new int[] { R.layout.drawer_header }); adapter.setExtraData(extraData); // Load count of tasks in each one Log.d("nononsenseapps drawer", TaskList.CREATE_COUNT_VIEW); // Adapter for list titles and ids // final SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, // R.layout.simple_light_list_item_1, null, // new String[] { TaskList.Columns.TITLE }, // new int[] { android.R.id.text1 }, 0); leftDrawer.setAdapter(adapter); // Set click handler leftDrawer.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View v, int pos, long id) { if (id < -1) { // Set preference which type was chosen PreferenceManager.getDefaultSharedPreferences(ActivityMain.this).edit() .putLong(TaskListFragment.LIST_ALL_ID_PREF_KEY, id).commit(); } openList(id); } }); leftDrawer.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int pos, long id) { // Open dialog to edit list if (id > 0) { DialogEditList_ dialog = DialogEditList_.getInstance(id); dialog.show(getSupportFragmentManager(), "fragment_edit_list"); return true; } else if (id < -1) { // Set as "default" PreferenceManager.getDefaultSharedPreferences(ActivityMain.this).edit() .putLong(getString(R.string.pref_defaultstartlist), id) .putLong(TaskListFragment.LIST_ALL_ID_PREF_KEY, id).commit(); Toast.makeText(ActivityMain.this, R.string.new_default_set, Toast.LENGTH_SHORT).show(); // openList(id); return true; } else { return false; } } }); // Define the callback handler final LoaderCallbacks<Cursor> callbacks = new LoaderCallbacks<Cursor>() { final String[] COUNTROWS = new String[] { "COUNT(1)" }; final String NOTCOMPLETED = Task.Columns.COMPLETED + " IS NULL "; @Override public Loader<Cursor> onCreateLoader(int id, Bundle arg1) { // Normal lists switch (id) { case TaskListFragment.LIST_ID_OVERDUE: return new CursorLoader(ActivityMain.this, Task.URI, COUNTROWS, NOTCOMPLETED + TaskListFragment.andWhereOverdue(), null, null); case TaskListFragment.LIST_ID_TODAY: return new CursorLoader(ActivityMain.this, Task.URI, COUNTROWS, NOTCOMPLETED + TaskListFragment.andWhereToday(), null, null); case TaskListFragment.LIST_ID_WEEK: return new CursorLoader(ActivityMain.this, Task.URI, COUNTROWS, NOTCOMPLETED + TaskListFragment.andWhereWeek(), null, null); case 0: default: return new CursorLoader(ActivityMain.this, TaskList.URI_WITH_COUNT, new String[] { TaskList.Columns._ID, TaskList.Columns.TITLE, TaskList.Columns.VIEW_COUNT }, null, null, getResources().getString(R.string.const_as_alphabetic, TaskList.Columns.TITLE)); } } @Override public void onLoadFinished(Loader<Cursor> l, Cursor c) { switch (l.getId()) { case TaskListFragment.LIST_ID_OVERDUE: if (c.moveToFirst()) { updateExtra(1, c.getInt(0)); } break; case TaskListFragment.LIST_ID_TODAY: if (c.moveToFirst()) { updateExtra(2, c.getInt(0)); } break; case TaskListFragment.LIST_ID_WEEK: if (c.moveToFirst()) { updateExtra(3, c.getInt(0)); } break; case 0: default: adapter.swapCursor(c); } } private void updateExtra(final int pos, final int count) { while (extraData.get(pos).size() < 2) { // To avoid crashes extraData.get(pos).add("0"); } extraData.get(pos).set(1, Integer.toString(count)); adapter.notifyDataSetChanged(); } @Override public void onLoaderReset(Loader<Cursor> l) { switch (l.getId()) { case TaskListFragment.LIST_ID_OVERDUE: case TaskListFragment.LIST_ID_TODAY: case TaskListFragment.LIST_ID_WEEK: break; case 0: default: adapter.swapCursor(null); } } }; // Load actual data getSupportLoaderManager().restartLoader(0, null, callbacks); // special views getSupportLoaderManager().restartLoader(TaskListFragment.LIST_ID_OVERDUE, null, callbacks); getSupportLoaderManager().restartLoader(TaskListFragment.LIST_ID_TODAY, null, callbacks); getSupportLoaderManager().restartLoader(TaskListFragment.LIST_ID_WEEK, null, callbacks); }
From source file:com.amaze.carbonfilemanager.activities.MainActivity.java
@Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { Uri uri = Uri.withAppendedPath(Uri.parse("content://" + CloudContract.PROVIDER_AUTHORITY), "/keys.db/secret_keys/"); String[] projection = new String[] { CloudContract.COLUMN_ID, CloudContract.COLUMN_CLIENT_ID, CloudContract.COLUMN_CLIENT_SECRET_KEY }; switch (id) { case REQUEST_CODE_CLOUD_LIST_KEY: Uri uriAppendedPath = uri;//from w ww .j a va 2s .c o m switch (OpenMode.getOpenMode(args.getInt(ARGS_KEY_LOADER, 6))) { case GDRIVE: uriAppendedPath = ContentUris.withAppendedId(uri, 1); break; case DROPBOX: uriAppendedPath = ContentUris.withAppendedId(uri, 2); break; case BOX: uriAppendedPath = ContentUris.withAppendedId(uri, 3); break; case ONEDRIVE: uriAppendedPath = ContentUris.withAppendedId(uri, 4); break; } return new CursorLoader(this, uriAppendedPath, projection, null, null, null); case REQUEST_CODE_CLOUD_LIST_KEYS: // we need a list of all secret keys Uri uriAll = Uri.withAppendedPath(Uri.parse("content://" + CloudContract.PROVIDER_AUTHORITY), "/keys.db/secret_keys"); CloudHandler cloudHandler = new CloudHandler(getApplicationContext()); try { List<CloudEntry> cloudEntries = cloudHandler.getAllEntries(); String ids[] = new String[cloudEntries.size()]; for (int i = 0; i < cloudEntries.size(); i++) { // we need to get only those cloud details which user wants switch (cloudEntries.get(i).getServiceType()) { case GDRIVE: ids[i] = 1 + ""; break; case DROPBOX: ids[i] = 2 + ""; break; case BOX: ids[i] = 3 + ""; break; case ONEDRIVE: ids[i] = 4 + ""; break; } } return new CursorLoader(this, uriAll, projection, CloudContract.COLUMN_ID, ids, null); } catch (CloudPluginException e) { e.printStackTrace(); Toast.makeText(this, getResources().getString(R.string.cloud_error_plugin), Toast.LENGTH_LONG) .show(); } case REQUEST_CODE_CLOUD_LIST_KEY_CLOUD: Uri uriAppendedPathCloud = ContentUris.withAppendedId(uri, 5); return new CursorLoader(this, uriAppendedPathCloud, projection, null, null, null); default: return null; } }