Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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, поэтому лучше использовать предоставленный интерфейс !!

Надеюсь, что это помогает вам!! :-)