@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?

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

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

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

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

Войти через центр авторизации
Похожие вопросы