CursorJoinerを使用して、2つのカーソルを1つにマージするのと同じようなものを取得できます。 CursorJoinerは実際にはマージを実行しません。それを繰り返すと、元の2つのカーソルが移動して、それらの行が指定された列と一致するようになります。これが、結合で使用される列で両方のカーソルをソートする必要がある理由です。
ドキュメントへのリンク:http://developer.android.com/reference/android/database/CursorJoiner.html
コード例:
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;
}
}