Intereting Posts
Android Market несколько APK … Как насчет разных архитектур процессора? Фрагмент: неизвестное имя анимационного объекта objectanimator Как центрировать значок и текст в андроидной кнопке с шириной, заданной как «заполнить родительский элемент», В папке .android нет файла debug.keystore Просмотр фрагмента ViewPager's, потерянный при отображении родительского фрагмента ViewPager, затем отображается Преобразование из JSONArray в String, затем обратно Android – запрет TalkBack анонсировать заголовок TextView вслух Одиночная анимация – несколько просмотров Android MediaPlayer мерцает при воспроизведении видео на Android 4.2.2 Android Сохранить изображение на SD-карту Как запросить журнал MMS в Android Выравнивание кнопок панели инструментов Android v7 Android: невозможно уничтожить активность Android Studio, 9 Patch и кнопка «Показать плохие патчи». Как это знать? Как получить представление из эспрессо, чтобы перейти в IdlingResource?

Что такое использование 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)";