2015-01-20 3 views
3

У меня есть две абсолютно несвязанные таблицы Notes и Tasks. Мне нужно показать их вместе в комбинированном виде списка. Чтобы достичь этого, комбинированный курсор, указанный для адаптера списка, должен иметь FULL OUTER JOIN из двух таблиц. Я не уверен, какой из курсоров Joyiner/MergeCursor - это путь. Может кто-нибудь дать примерный пример того, как этого добиться?Отображение гетерогенных данных в списке из двух таблиц в Android

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

EDIT: Также мне нужно, чтобы иметь возможность сортировать элементы в объединенном виде. Заметки имеют столбцы темы, а в разделе Задачи есть столбец заголовка. Я хочу, чтобы комбинированный курсор отсортирован в алфавитном порядке на основе обоих из них.

+0

Почему вы не просто поместили JOIN в SQL-запрос? – cyanide

+1

Sqlite не поддерживает полное внешнее соединение – yagnasri

ответ

0

В полном внешнем или правых внешнем соединении не поддерживается в SQLite и если вы ЗАС теперь о CursorJoiner и CursorMerger пройти через эти ссылки ниже

When to use CursorJoiner/MatrixCursor/MergeCursor?

CursorJoiner

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

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

MergeCursor

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

Смежные вопросы