Я следую учебнику Android developers, чтобы настроить базу данных, но у меня возникла проблема. Это мой файл схема:Невозможно получить схему контекста и доступа из базы данных
public final class ContactsDBSchema {
public ContactsDBSchema(){};
public static abstract class ContactsEntry implements BaseColumns
{
public static final String TABLE_NAME = "contacts";
public static final String COLUMN_CONTACT__ID = "contact_id";
public static final String COLUMN_CONTACT__NAME = "contact_name";
public static final String COLUMN_CONTACT__PHONE = "contact_phone";
}
public class ContactsDBhelper extends SQLiteOpenHelper
{
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "contacts.db";
public String SQL_CREATE_ENTRIES = "create table" + ContactsEntry.TABLE_NAME + ContactsEntry.COLUMN_CONTACT__ID +"INTEGER PRIMARY KEY AUTOINCREMENT," + ContactsEntry.COLUMN_CONTACT__NAME + "TEXT," + ContactsEntry.COLUMN_CONTACT__PHONE + "TEX";
public String SQL_DELETE_ENTRIES = "DROP TABLE IF EXISTS" + ContactsEntry.TABLE_NAME ;
public ContactsDBhelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
}
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
}
Вопрос теперь, когда я пытаюсь получить доступ к нему из другого класса, как это:
public class ContactsDBprocess {
ContactsDBSchema.ContactsDBhelper contactsHelper = new ContactsDBSchema.ContactsDBhelper(getContext());
}
Я не может получить доступ к вспомогательному классу правильно. getContext()
функция не работает, и я получаю сообщение об ошибке:
Cannot resolve method
getContext
Я попытался сделать это:
ContactsDBSchema.ContactsDBhelper contactsHelper = new ContactsDBSchema.ContactsDBhelper(this)
ContactsDBSchema.ContactsDBhelper contactsHelper = new ContactsDBSchema.ContactsDBhelper(getApplicationContext())
Я до сих пор не имеют каких-либо удачи. Любые предложения по решению этой проблемы?
В каком классе вы пытаетесь создать экземпляр 'ContactsDBhelper'? Вам нужно передать действительный 'Context' в качестве параметра конструктора. – earthw0rmjim
Ваш класс 'ContactDBProcess' должен быть определен в классе, который имеет' getContext() 'или ему необходимо расширить такой класс. Или вы можете передать действительный 'context' в свой конструктор, а затем использовать эту переменную вместо' getContext() '. – Shaishav