CursorLoader – ¿Dos tablas unen consulta?

Estoy teniendo dos tablas con una relación 1: 1, estoy usando el proveedor de contenido y cursorloader.

¿Cómo haría una consulta de unión para trabajar con el cargador de cursor? Podría hackear de alguna manera con rawSql dentro del proveedor de contenido, pero cómo hacerlo en el cargador del cursor constructor está más allá de mí.

Muchas gracias !

private static final String CREATE_TABLE_ARTICLES = "create table " + TABLE_ARTICLES + "(" + COLUMN_ARTICLE_ID + " integer primary key autoincrement, " + COLUMN_URL + " text not null unique, " + COLUMN_TITLE + " text not null, " + COLUMN_PRICE + " text not null, " + COLUMN_ADDED + " text not null, " + COLUMN_IMG_URL + " text);"; private static final String CREATE_TABLE_ARTICLE_DETAIL = "create table " + TABLE_ARTICLE_DETAILS + "(" + COLUMN_ARTICLE_DETAIL_ID + " integer primary key autoincrement, " + COLUMN_DESC + " text not null, " + COLUMN_LOCALITY + " text, " + COLUMN_TYPE + " text not null, " + COLUMN_SELLER + " text not null, " + COLUMN_SELLER_PHONE + " text, " + COLUMN_IMAGE_COUNT + " integer default 0, " + COLUMN_ARTICLE + " integer, foreign key (" + COLUMN_ARTICLE + ") references " + TABLE_ARTICLES + "(" + COLUMN_ARTICLE_ID + "));"; 

En realidad, no tiene que utilizar un cargador de tareas personalizado. En pocas palabras, una solución es crear un Uri "content: // AUTHORITY / TableArticlesWithDetail". A continuación, en su proveedor de contenido, compruebe que Uri y hacer un SQL sin procesar para hacer la unión.

Vea cómo utilizar join query en CursorLoader cuando su constructor no lo admite para más detalles.

La solución más fácil es crear una vista que une sus tablas y acceder a la vista desde su CursorLoader usando un Uri.

 Cursor c = db.query( RefuelTable.TABLE_NAME + " , " + ExpenseTable.TABLE_NAME, Utils.concat(RefuelTable.PROJECTION, ExpenseTable.PROJECTION), RefuelTable.EXP_ID + " = " + ExpenseTable.ID + " AND " + RuelTable.ID + " = " + id , null, null, null, null); 

Hazlo así

  • Deslizar para eliminar un cardview hace parpadear durante un breve segundo antes de animar
  • Cuál es mejor: Loader o Fragmentos sin cabeza
  • AlphabetIndexer con adaptador personalizado administrado por LoaderManager
  • Consultar canciones de un álbum con CursorLoader
  • ¿Qué hace LoaderManager?
  • SimpleCursorTreeAdapter y CursorLoader para ExpandableListView
  • Android OnLoadFinished () no se llama cuando el cursor cambia
  • ¿Cómo (correctamente) la transición de startManagingCursor a CursorLoader?
  • Buscar lista de nombres de género con canciones
  • NullPointerException en onLoaderFinished usando SimpleCursorAdapter
  • Rellenar widgets desde un cursor en onLoadFinished ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.