Android - вытащить данные из двух баз данных в один курсор - PullRequest
0 голосов
/ 25 марта 2011

Я сделал приложение для заметок, которое организует заметки по контактам.Я ищу, чтобы создать ListActivity с двумя строками для каждого элемента списка.Первая строка будет иметь основной заголовок, который пользователь назначит заметке.Во втором ряду я бы хотел разместить там имя Контакта.Я понятия не имею, как вообще начать делать это.Я изучал последние два дня, пробовал писать код здесь и там, и кажется, что ничего не получается правильно.Кажется, я продолжаю возвращаться в MergeCursor, но не могу заставить его работать правильно и не могу найти хороших примеров, которые бы помогли мне понять это.

Моя основная таблица базы данных: _id, contactId, title, body, datetime.

Когда создается заметка, идентификатор контакта из встроенной базы данных контактов передается в строку вмоя база данныхЯ уверен, что это что-то простое, но я не могу это понять!Любая помощь приветствуется!

Ответы [ 3 ]

1 голос
/ 25 марта 2011

Попробуйте использовать CursorJoiner . Также не рекомендуется присоединяться к столбцу «Контакты» _ID, поскольку это можно изменить с помощью операции синхронизации или агрегирования. Используйте LOOKUP_KEY на Контакты .

0 голосов
/ 25 марта 2011

Или, на самом деле, я мог неправильно истолковать ваш вопрос, поэтому я публикую другой ответ.Похоже, у вас проблемы с самим макетом, а не с технической частью хранения / извлечения данных.

Если это так, я бы рекомендовал вам Уловки макетов: Создание эффективных макетов, которая показывает пару разных вещей, которые вы можете сделать.

В основном, есть фрагмент кода XML, который объявляет Linear Layout, который имеет два дочерних узла, каждый из которых TextView.Когда вы перейдете к использованию SimpleCursorAdapter (что я рекомендую) в вашем ListActivity, сделайте последнее поле в вашем конструкторе SimpleCursorAdapter "to" равным new int[]{R.id.text1, R.id.text2}, которое является идентификаторами TextViews, которые вы сохранили в xml.

Я имею в виду конструктор SimpleCursorAdapter .

Помогает ли это?

0 голосов
/ 25 марта 2011

Мой совет: продолжайте использовать MergeCursor и опасайтесь, что

"вызовы getColumns, getColumnIndex, и т. д. вернет значение для строки что MergeCursor в настоящее время указывая на. "

Когда вам нужна строка из нее, сделайте так, как

String body = cursor.getString(cursor.getColumnIndex(MySqlDatabase.KEY_BODY));

Этот формат следует использовать независимо от MergeCursor или обычного Cursor

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...