gpt4 book ai didi

java - 为什么我无法从简单的 java 类访问 Assets 文件夹?

转载 作者:行者123 更新时间:2023-12-02 05:20:03 25 4
gpt4 key购买 nike

我有一个名为 FirstClass 的 Activity 类和一个名为 SecondClass 的简单 Java 类。

在 FirstActivity 内部我想创建一个 SecondClass 的新对象,如下所示:

SecondClass secondClass = new SecondClass();

在 SecondClass 内部,我打算访问 Assets 文件夹并处理 JSON 文件,然后通过方法返回结果。

AssetManager assetManager = getResources().getAssets();
InputStream stream = assetManager.open("myJson.json");

但是我遇到了错误,我该如何解决它?

最佳答案

这是因为getResources()是Activity的父类Context的方法。因此,每当您尝试在 Activity 中调用以下代码时:

AssetManager assetManager = getResources().getAssets();

它与:

相同
AssetManager assetManager = YourActivity.this.getResources().getAssets();

YourActivity.this 是上下文。

但是,当您尝试从不是 Context 子级的类调用它时,它会给您一个找不到方法的错误。您需要从上下文派生您的类将上下文传递给您的类

类似这样的事情:

public class SecondClass {

private Context mContext;

public SecondClass(Context context) {
mContext = context;
}

// then use it on your method
public void doSomethingWithAsset() {
AssetManager assetManager = mContext.getResources().getAssets();
InputStream stream = assetManager.open("myJson.json");
}
}

关于java - 为什么我无法从简单的 java 类访问 Assets 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26582952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com