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

GetAssets(); из другого класса

У меня есть простая функция чтения txt файлов.

AssetManager mngr = getAssets();
InputStream is = mngr.open("textdb.txt");

Это работает от моей основной деятельности. Но если я использую один и тот же код в отдельном классе, getAssets() просто возвращает null/crash.

Я не могу найти, почему он работает только из основного класса.

Любые идеи?

Решение:

subClass.ReadSettings(getApplicationContext());

public String[] ReadSettings(Context myContext) {
}
4b9b3361

Ответ 1

Является ли ваш другой класс также Activity? getAssets() - это метод контекста. Если ваш класс не является активным, вам нужно передать ему контекст, а затем вызвать getAssets.

Так же:

public myClass(Context myContext) {
    AssetManager mngr = myContext.getAssets();
    InputStream is = mngr.open("textdb.txt");
}