Вставка записей
До сих пор мы рассматривали только извлечение данных из поставщиков контента с помощью URI. А теперь взглянем на вставки, изменения и удаления.
На заметку! При объяснении поставщиков контента мы использовали примеры из приложения Notepad, которое в руководстве от Google предоставляется в качестве прототипа. Однако совсем не обязательно знакомиться с этим приложением. Даже без этого вы сможете понять все примеры. Тем не менее, позже в настоящей главе будет приведен полный код поставщика.
В Android используется класс android.content.ContentValues для хранения значений одной записи, предназначенной для вставки. Этот класс представляет собой словарь пар “ключ/значение” — имена столбцов и их значения. Для вставки записи нужно сначала заполнить эту запись в ContentValues, а потом запросить у экземпляра класса android.content.ContentResolver ее вставку с применением URI.
На заметку! Обращение к ContentResolver необходимо потому, что на данном уровне абстракции выполняется не запрос к базе данных на вставку записи, а запрос на вставку записи в поставщик, идентифицируемый URI. Класс ContentResolver отвечает за преобразование ссылки URI в правильный поставщик с последующей передачей этому поставщику объекта
ContentValues.
Вот пример заполнения одиночной строки заметки в ContentValues при подготовке к вставке:
ContentValues values = new ContentValues();
values.put("title", "New note");
values.put("note", "This is a new note");
// Объект values теперь готов к вставке.
Ссылку на ContentResolver можно получить, запросив класс Activity:
ContentResolver ContentResolver = activity.getContentResolver();
Теперь необходим URI для указания, что ContentResolver должен вставить строку. Эти URI определены в классе, соответствующем таблице Notes. В примере с приложением Notepad этот URI имеет следующий вид:
Notepad.Notes.CONTENT_URI
Теперь можно взять этот URI и заполненный ContentValues и сделать вызов для вставки строки:
Uri uri = contentResolver.insert(Notepad.Notes.CONTENT URI, values);
Этот вызов возвращает URI, который указывает на только что вставленную запись и имеет следующую структуру:
Notepad.Notes.CONTENT URI/новый id
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.