Задать вопрос
@KnightForce

Что происходит в отмеченном коде? И что запрашивает ContentResolver query?

84548dcac6ad42f584983ddc90edc719.png

Объясните (и поправьте) что происходит в этом коде:

(3) получаем объект Cursor в котором содержится таблица из контент провайдера содержащего контакты, а ContactsContact.Contacts.CONTENT_URI - это ссылка на таблицу в ContentProvider.

(4) Получаем значение столбца "_id" по его индексу. Так?

(5) Это что и зачем? Как я понял, берем путь к таблице в ContentProvider и добавляем дальнейший путь к столбцу "_id". Так?
Далее пакуем в Intent и отправляем родительской активности.

(1) После получения data из пришедшего Intent с помощью метода query запрашивает уже непосредственно Cursor, который будет содержать столбец "_id".

(2) И вот тут я запутался.
Зачем метод getString? Как я понял для получения какого-то значения у столбца.
Но внутри запрашивается у Cursor индекс столбца DISPLAY_NAME_PRIMARY. Но как? Если в курсоре только строки из столбца "Id".

И что запрашивает метод query?

Пожалуйста поправьте меня там где я неправ.
  • Вопрос задан
  • 247 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@kamiLLxiii
Android-разработчик
query - это select для таблицы.

(3) все верно
(4) верно, получаем id определенной записи в таблице. По факту, всего одной.
(5) составляем Uri, по которому через ContentResolver сможем получить конкретную запись. Не к столбцу, а к записи, которую нашли на предыдущем шаге.
(1) Запрашивается Cursor содержащий не столбец с "_id", а select из таблицы для тех записей у которых "_id" равен переданному.
(2) Cursor всего с одной записью, у которой есть все столбцы, из которого мы выгребаем определенное значение

Уот так уот
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы