Cuándo utilizar CursorJoiner / MatrixCursor / MergeCursor?
Estoy explorando diferentes maneras de obtener datos elegantemente de dos o más tablas unidas.
Creo que MergeCursor
, ( Android Developer Guide ) parece implicar que podría (por ejemplo) reemplazar un SQL UNION
equivalente al concatenar dos consultas (o agregar vistas individualmente como filas, etc) – por lo tanto, no lo que quiero.
Pero estoy en una pérdida en cuanto a lo que exactamente CursorJoiner
y MatrixCursor
son para, o cómo usarlos. He mirado la fuente para ellos y (como de costumbre) no significa nada para mí! Los ejemplos que he encontrado de ellos en uso no explican claramente cuál fue el efecto resultante. Realmente agradecería una buena descripción de ellos, y el contexto en el que podrían ser utilizados.
MergeCursor
, como usted indica, está diseñado para concatenar dos conjuntos de datos "vertical", agregando más filas.
CursorJoiner
está diseñado para concatenar dos conjuntos de datos "horizontalmente", agregando más columnas. Se puede pensar en esto como similar a la implementación de un simple SQL JOIN
.
MatrixCursor
permite construir algo que implemente la interfaz Cursor
fuera de datos puros, que se vierte en un modelo de datos bidimensional.
AbstractCursor
permite envolver su propio conjunto de datos personalizados en una interfaz Cursor
, sobrescribiendo los métodos que sean necesarios.