getAssets(); 从另一个班级

jon*_*son 29 android assets

我有一个简单的读取txt文件的功能.

AssetManager mngr = getAssets();
InputStream is = mngr.open("textdb.txt");
Run Code Online (Sandbox Code Playgroud)

它适用于我的主要活动.但是如果我在一个单独的类中使用相同的代码,getAssets()只返回null/crash.

我无法找到为什么它只适用于主类.

有任何想法吗?

解:

subClass.ReadSettings(getApplicationContext());

public String[] ReadSettings(Context myContext) {
}
Run Code Online (Sandbox Code Playgroud)

San*_*eer 61

你的其他班级也是Activity吗?getAssets()是Context的一种方法.如果您的类不是活动,则需要将上下文传递给它,然后在其上调用getAssets.

像这样:

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

  • 没问题!你能点击复选标记选择他的答案作为正确的答案吗?这将删除"未答复"列表中的问题,并使具有相同问题的其他人更容易找到正确的答案. (2认同)