Что такое использование класса из BaseColumns
в Android?
Что такое использование BaseColumns в Android?
Ответ 1
Это простой интерфейс, который добавляет два поля:
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
Ответ 2
Интерфейс BaseColumns
предоставляет имена для очень распространенных столбцов _ID
и _COUNT
.
Использование общих имен позволяет платформе Android (а также разработчикам) обращаться к любому элементу данных независимо от его общей структуры (т.е. других столбцов без идентификатора) унифицированным способом. Определение констант для часто используемых строк в интерфейсе/классе позволяет избежать повторений и опечаток во всем коде.
Использование столбца с именем _id
(постоянное значение BaseColumns._ID
) требуется CursorAdapter
, реализациями ContentProvider
и другими местами, где вы передаете Cursor
на платформу Android, чтобы сделать что-то для вас. Например, адаптер ListView
использует столбец _ID
, чтобы дать вам уникальный идентификатор элемента списка, по которому щелкнули в OnItemClickListener.onItemClick()
, без необходимости явно указывать каждый столбец идентификатора. время.
Реализовать ли implement интерфейсы, состоящие только из констант, или ссылаться на них со своим полным именем, т.е. BaseColumns._ID
- дело вкуса. Я лично предпочитаю второе, потому что более очевидно, откуда исходит _ID
, а первое - как злоупотребление наследством.
Ответ 3
Интерфейс 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)";
Ответ 4
Это интерфейс, который выглядит следующим образом
public interface BaseColumns
{
public static final String _ID = "_id";
public static final String _COUNT = "_count";
}
Он содержит константы, такие как id и count, используемые для автоинкремента в SQL lite DB.
Мы также можем создавать свои собственные константы для id без использования этого конкретного интерфейса. Но для таких функций, как адаптер курсора, нужны точные константы, такие как _id, поэтому лучше использовать предоставленный интерфейс !!
Надеюсь, что это помогает вам!! :-)