web-dev-qa-db-fra.com

getAssets (); d'une autre classe

J'ai une simple lecture d'une fonction de fichier txt.

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

Cela fonctionne de mon activité principale. Mais si j'utilise le même code dans une classe distincte, getAssets () renvoie simplement null/crash.

Je ne parviens pas à comprendre pourquoi cela fonctionne uniquement à partir de la classe principale.

Des idées?

Solution:

subClass.ReadSettings(getApplicationContext());

public String[] ReadSettings(Context myContext) {
}
28
jonassvensson

Votre autre classe est-elle également un Activity? getAssets () est une méthode de Context. Si votre classe n'est pas une activité, vous devrez lui passer un contexte, puis appeler getAssets à ce sujet.

Ainsi:

public myClass(Context myContext) {
    AssetManager mngr = myContext.getAssets();
    InputStream is = mngr.open("textdb.txt");
}
59
Sander van't Veer