从另一个类获取getAssets();

33

我有一个简单的读取txt文件的函数。

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

在我的主活动中可以工作。但是如果我在一个单独的类中使用相同的代码,getAssets() 就会返回 null/崩溃。

我无法找到为什么它只能在主类中工作。

解决方案:

subClass.ReadSettings(getApplicationContext());

public String[] ReadSettings(Context myContext) {
}
1个回答

70

你的另一个类也是一个 Activity 吗?getAssets() 是 Context 的一个方法。如果你的类不是一个 activity,你需要把 context 传递给它,然后在它上调用 getAssets()

就像这样:

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

4
没问题!您可以通过点击对号来选择他的答案作为正确答案。这将从“未回答”列表中删除该问题,并使其他遇到相同问题的人更容易找到正确的答案。 - Sander van't Veer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接