getAssets (); из другого класса - PullRequest
28 голосов
/ 10 декабря 2011

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

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

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

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

Есть идеи?

Решение:

subClass.ReadSettings(getApplicationContext());

public String[] ReadSettings(Context myContext) {
}

1 Ответ

59 голосов
/ 10 декабря 2011

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

Примерно так:

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