Intereting Posts
Изменение цвета одиночного чертежа в RecyclerView изменит все чертежи Режим полета в Jelly Bean Динамические ссылки Firebase не имеют глубокой связи с коротким URL-адресом на пользовательских вкладках Включить параметр «Обработчики аннотаций» в Android Studio 2.2 Android Studio – эмулятор: как тестировать API 15 x86 Google API BitmapFactory не может декодировать растровое изображение от Uri после фотографий, сделанных на Android Nougat Как удалить белый экран при загрузке приложения для Android? Переход к родительской активности в ActionBar без обработки. Прокси-сервер Socks в андроиде Какие версии GLSL можно использовать в OpenGL ES 2.0? Проект не имеет файла default.properties! Масштабирование и поворот растрового изображения с использованием Matrix в Android Android Drawable: растровое изображение повторного воспроизведения слоя не загружается, когда полностью покрывается Как установить проверку в canvas android? Что происходит, когда я дважды запускаю будильник?

Что такое использование BaseColumns в Android?

Какая польза от внедрения класса из BaseColumns в Android?

Solutions Collecting From Web of "Что такое использование BaseColumns в Android?"

Это простой интерфейс, который добавляет два поля:

 public interface BaseColumns { /** * The unique ID for a row. * <P>Type: INTEGER (long)</P> */ public static final String _ID = "_id"; /** * The count of rows in a directory. * <P>Type: INTEGER</P> */ public static final String _COUNT = "_count"; } 

Внутренние базы данных sqlite, используемые в Android, поставляются с столбцом _id который автоинкрементируется и может функционировать как первичный ключ. Это также хорошо ContentProviders на ContentProviders

Интерфейс BaseColumns предоставляет имена для очень общих _ID и _COUNT .

Использование общих имен позволяет платформе Android (и разработчикам) обращаться к любому элементу данных независимо от общей структуры (то есть других столбцов без идентификатора) унифицированным способом. Определение констант для часто используемых строк в интерфейсе / классе исключает повторение и опечатки по всему коду.

Использование столбца с именем _id (постоянное значение BaseColumns._ID ) требуется CursorAdapter , реализация ContentProvider и других мест, где вы CursorAdapter Cursor на платформу Android, чтобы делать что-то для вас. Например, адаптер ListView использует столбец _ID чтобы дать вам уникальный идентификатор элемента списка, OnItemClickListener.onItemClick() в OnItemClickListener.onItemClick() , без необходимости явно указывать, какой столбец идентификатора будет каждый раз.

Нужно ли реализовать интерфейсы, состоящие только из констант или ссылающиеся на их полное имя, то есть BaseColumns._ID – дело вкуса. Я лично предпочитаю последнее, потому что это более очевидно, где _ID исходит, и первое похоже на злоупотребление наследованием.

Интерфейс BaseColumn предоставляет имена столбцов _ID и _COUNT. Вы должны указать столбцы, которые используют их при построении таблиц. Например, чтобы создать столбец с именем столбца _ID, вы можете сделать следующее:

 public static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY, " + USERNAME + " TEXT NOT NULL, " + PASSWORD + " TEXT NOT NULL, " + EMAIL + " TEXT NOT NULL UNIQUE)";