Вставка записей

Вставка записей

До сих пор мы рассматривали только извлечение данных из поставщиков контента с помощью 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

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий