Архив за месяц: Апрель 2017
Использование карт проекций
Поставщик контента действует подобно посреднику между абстрактным набором столбцов и реальными столбцами в базе данных, но эти наборы столбцов могут различаться. При конструировании запросов необходимо учитывать соответствие между столбцами конструкции where, указанными клиентом, и реальными столбцами базы данных. Такая карта… Читать далее
Реализация метода delete
Метод delete в поставщике контента отвечает за удаление записи (или записей) на основе переданной конструкции where. Он возвращает количество удаленных строк.
Как и другие методы, метод update для выяснения типа URI использует класс UriMatcher. Если это коллекция, то передается конструкция… Читать далее
Реализация метода insert
Метод insert в поставщике контента отвечает за вставку записи в базу данных и возвращает URI, который указывает на только что созданную запись.
Как и в других методах, в методе insert для выяснения типа URI используется класс UriMatcher. Код сначала проверяет,… Читать далее
Обеспечение контрактов MIME-типов
Поставщик контента BookProvider должен также реализовать метод getType() , возвращающий MIME-тип для заданного URI. Этот метод, как и многие другие методы поставщика контента, перегружается в зависимости от входящих URI. Поэтому первой заботой метода getType() является выяснение типа URI — это… Читать далее
Расширение класса Contentprovider
Для реализации нашего примера поставщика контента BookProvider необходимо расширить класс ContentProvider, переопределить метод onCreate() и реализовать методы query, insert, update, delete и getType. В этом разделе описаны настройка и создание базы данных, а конкретные методы будут реализованы ниже. Полный исходный… Читать далее
Реализация поставщиков контента
К этому моменту уже известно, как взаимодействовать с поставщиком контента для обработки данных, но пока еще не было показано, как написать поставщик контента. А для этого нужно расширить класс android.content.ContentProvider и реализовать следующие ключевые методы:
query
insert
update
delete
getType… Читать далее
Обновления и удаления
Ранее были подробно рассмотрены запросы и вставки; обновления и удаления также довольно прямолинейны. Выполнение обновления подобно вставке, при которой изменяемые значения столбцов передаются через объект ContentValues. Вот сигнатура метода обновления update в объекте ContentResolver:
int numberOfRowsUpdated = activity.getContentResolver().update(
Uri uri,… Читать далее
Добавление файла к поставщику контента
Иногда бывает нужно сохранить в базе данных целый файл. Обычно для этого файл сохраняется на диске, а в базе данных изменяется запись, которая указывает на соответствующее имя файла.
В Android этот протокол автоматизирован за счет определения специальной процедуры для сохранения… Читать далее
Камень-ракушечник
Замечательные свойства этого строительного материала практически безграничны. Данный камень формируется из песка, извести и раковин морских животных. Читать далее
Вставка записей
До сих пор мы рассматривали только извлечение данных из поставщиков контента с помощью URI. А теперь взглянем на вставки, изменения и удаления.
На заметку! При объяснении поставщиков контента мы использовали примеры из приложения Notepad, которое в руководстве от Google предоставляется… Читать далее