Итак, у меня в 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"));
}
Комментариев нет:
Отправить комментарий