Puoi usare un CursorJoiner per ottenere qualcosa di simile alla fusione di due cursori in uno. Il CursorJoiner non esegue effettivamente un'unione. Mentre si scorre su di esso, sposta i due cursori originali in modo tale che le loro righe corrispondano alle colonne specificate. Questo è il motivo per cui è necessario che entrambi i Cursori siano ordinati sulle colonne da utilizzare nel join.
Link alla documentazione:http://developer.android.com/reference/android/database/CursorJoiner.html
Esempio di codice:
CursorJoiner joiner = new CursorJoiner(userCursor, new String[]{ "user_id" }, postCursor, new String[] {"user_id"});
while (joiner.hasNext()) {
CursorJoiner.Result result = joiner.next();
switch (result) {
case LEFT:
// don't care about this case
break;
case RIGHT:
// nor this case
break;
case BOTH:
// here both original Cursors are pointing at rows that have the same user_id, so we can extract values
int postId = postCursor.getInt(...);
String headline = postCursor.getString(...);
int userId = userCursor.getInt(...);
String userName = userCursor.getString(...);
// do something with above values
break;
}
}