Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Как передать активность в класс extends SQLiteOpenHelper

Итак, у меня в MainActivity происходит инициализация БД:
SQLiteDatabase database = fDbHelper.getWritableDatabase();
Если базы нет, она создаётся через onCreate() класса FDbHelper extends SQLiteOpenHelper. Но в самом onCreate база первично наполняется из файла, лежащего в Assets. И я вызываю внутренний класс, который работает с этим файлом и наполняет БД:
FDbHelper.ExcelParser parser = new FDbHelper.ExcelParser(); parser.fill(getAssets().open("file.xls"));
Раньше парсер работал у меня в тестовом режиме и вызывался прямо из MainActivity, и проблем с getAssets() не было. Теперь парсер вызывается из FDbHelper extends SQLiteOpenHelper и встала проблема, где взять активити или что-то подобное, чтобы добраться до Assets


Ответ

Попробуйте передать Context классу FDbHelper, через конструктор
class FDbHelper{ Context context;
FDbHelper(Context context){ this.context = context; }
FDbHelper.ExcelParser parser = new FDbHelper.ExcelParser(); parser.fill(context.getAssets().open("file.xls")); }

Комментариев нет:

Отправить комментарий