GROUP BY con CursorLoader

¿Cómo puedo definir una consulta GROUP BY para mi CursorLoader?

Los dos constructores de un CursorLoader que veo toman un solo Context o un Context , Uri , projection , selection , selectionArgs y sortOrder .

Pero ningún groupBy .

(Estoy usando el paquete de soporte para un dispositivo Android 2.3)

Realmente no…

Puede definir un URI específico para su cláusula GROUP BY específica.

Por ejemplo, si tiene una tabla mPersonTable, posiblemente agrupada por sexo, puede definir los siguientes URI:

 PERSON PERSON/# PERSON/GENDER 

Al consultar, cambie entre sus consultas para que pueda agregar su grupo por parámetro:

 public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { String groupBy = null; switch (mUriMatcher.match(uri)) { case PERSON_ID: ... break; case PERSON_GENDER: groupBy = GENDER_COLUMN; case PERSON: SQLiteQueryBuilder builder = new SQLiteQueryBuilder(); builder.setTables(mPersonTable); builder.setProjectionMap(mProjectionMap); return builder.query(db, projection, selection, selectionArgs, groupBy, having, sortOrder, limit); default: break; } } 

De hecho, puedes pasar cualquier tipo de parámetros a tu consulta

Obs .: Utilice un UriMatcher para que coincida con el uri con la implementación de la consulta.

Usted puede agregar el grupo por con el parámetro de la selección

 new CursorLoader(context,URI, projection, selection+") GROUP BY (coloum_name", null,null); 

Aparentemente (y esto es un poco vergonzoso) la primera línea de la documentación indica claramente que el CursorLoader consulta el ContentResolver para recuperar el Cursor . Mientras que el ContentResolver no expone ningún medio a GROUP BY hay, por lo tanto, ninguna forma de CursorLoader podría exponer dicha funcionalidad tampoco.

Así que la respuesta aparente a mi propia pregunta es: ¡ No puedes!

  • IllegalStateException - Apoyo LoaderManager con AutocompleteTextView
  • AutoCompleteTextView respaldado por CursorLoader
  • Lista de paginación y CursorLoader
  • Buscar lista de nombres de género con canciones
  • ¿Cómo puedo actualizar el cursor desde un CursorLoader?
  • ¿Cuál es el propósito de startManagingCursor?
  • Android cursorLoader con paginación o carga más funcionalidad?
  • Prueba de ViewPager (y CursorLoader) con Robolectric
  • CursorLoader con startManagingCursor ()
  • ¿Cómo insertar correctamente valores en la base de datos SQLite utilizando el método insert () de ContentProvider mediante un CursorLoader?
  • Cómo implementar un ContentObserver en un fragmento utilizando CursorAdapter y LoaderCallbacks?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.