Отображение разнородных данных в виде списка из двух таблиц в Android

У меня есть две совершенно не связанные между собой таблицы Notes и Tasks. Мне нужно показать их обоих вместе в виде комбинированного списка. Для достижения этого объединенный курсор, данный адаптеру списка, должен иметь полное соединение двух таблиц. Я не уверен, какой из CursorJoiner/MergeCursor является подходящим способом. Может ли кто-нибудь привести какой-нибудь рабочий пример того, как этого добиться?

(Смена поставщика контента невозможна. Поэтому мне приходится работать с курсорами.)

РЕДАКТИРОВАТЬ: Также мне нужно иметь возможность сортировать элементы в комбинированном виде. Notes имеет столбец темы, а Tasks - столбец заголовка. Я хочу, чтобы комбинированный курсор был отсортирован по алфавиту на основе их обоих.

1 ответ

Поскольку полное внешнее или правое внешнее объединение не поддерживается в sqlite, и если вы хотите узнать о CursorJoiner и CursorMerger, перейдите по этой ссылке ниже

Когда использовать CursorJoiner / MatrixCursor / MergeCursor?

CursorJoiner

Если вам нужны данные из двух или более таблиц, самое простое - использовать SQL-запрос, который объединяет две таблицы. Однако иногда у вас уже есть источники для двух отдельных запросов (например, CursorLoader, основанный на ContentProvider), и вы можете захотеть просто использовать их повторно, не создавая новый запрос. Именно здесь CursorJoiner пригодится.

http://chariotsolutions.com/blog/post/android-advanced-cursors/

MergeCursor

MergeCursor позволяет вам представить два или более курсора как один курсор. Вы можете получить почти такой же эффект, выполнив запрос sql UNION. Однако MergeCursor позволяет вам иметь разные столбцы в разных курсорах и объединять их.

Другие вопросы по тегам