我有一个简单的阅读txt文件功能。

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

它从我的主要 Activity 中起作用。但是,如果我在单独的类中使用相同的代码,则getAssets()仅返回null /崩溃。

我无法找到为什么它只能在主要类(class)上使用。

有任何想法吗?

解决方案:
subClass.ReadSettings(getApplicationContext());

public String[] ReadSettings(Context myContext) {
}

最佳答案

您的其他类(class)也是Activity吗?
getAssets()是上下文的一种方法。如果您的类(class)不是 Activity ,则需要向其传递上下文,然后在该上下文上调用getAssets。

像这样:

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

08-18 13:24