Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单java类中的getResources()错误_Java_Android - Fatal编程技术网

简单java类中的getResources()错误

简单java类中的getResources()错误,java,android,Java,Android,我对学习Recyclerview所遵循的简单教程代码有问题。 首先,我创建一个类来表示项,如: package tom_d.fr.testrecyclerview; import android.content.res.Resources; import java.util.ArrayList; public class Planete { public String mNom; public int mDistance; protected ArrayList&l

我对学习Recyclerview所遵循的简单教程代码有问题。 首先,我创建一个类来表示项,如:

package tom_d.fr.testrecyclerview;

import android.content.res.Resources;
import java.util.ArrayList;

public class Planete {

    public String mNom;
    public int mDistance;
    protected ArrayList<Planete> mListe;

    Planete(String nom, int distance) {
        mNom = nom; // nom de la planète
        mDistance = distance; // distance au soleil en Gm

        Resources res = getResources();
        final String[] noms = res.getStringArray(R.array.noms);
        final int[] distances = res.getIntArray(R.array.distances);

        mListe = new ArrayList<Planete>();
        for (int i=0; i<noms.length; ++i) {
            mListe.add(new Planete(noms[i], distances[i]));
        }
    }
如何进行?我只想访问带有数组的xml文件:(

我也在stackoverflow和其他网站上搜索了这个错误,但没有功能性的答案


我想我犯了一个错误,但我不知道在哪里:/

您需要一个上下文来访问资源。请将活动中的上下文传递给您的班级

Planete(Context context, String nom, int distance) {
    Resources res = context.getResources();
}
Planete(Context context, String nom, int distance) {
    Resources res = context.getResources();
}
然后在你的活动中

new Planete(this, "sample", 1);

像这样改变你的班级

public class Planete {

    private Context context;
    public String mNom;
    public int mDistance;
    protected ArrayList<Planete> mListe;

    Planete(Context context, String nom, int distance) {
        mNom = nom; // nom de la planète
        mDistance = distance; // distance au soleil en Gm

        Resources res = context.getResources();
        final String[] noms = res.getStringArray(R.array.noms);
        final int[] distances = res.getIntArray(R.array.distances);

        mListe = new ArrayList<Planete>();
        for (int i=0; i<noms.length; ++i) {
            mListe.add(new Planete(noms[i], distances[i]));
        }
    }
}
公共类飞机{
私人语境;
公共字符串mNom;
公众立场;
受保护的阵列列表;
平面(上下文、字符串名称、整数距离){
mNom=nom;//计划名称
mDistance=距离;//太阳的距离
Resources res=context.getResources();
最终字符串[]noms=res.getStringArray(R.array.noms);
最终int[]距离=res.getIntArray(R.array.distance);
mListe=newarraylist();
对于(int i=0;i您不能直接使用“资源”,
因为这是一个外部类文件。而这个外部类文件的使用位置未知

如果使用getAplicationContext(),则它仍然不允许访问资源

因此,您可以将项目资源与它调用或使用的那些活动的上下文一起使用

Planete(Context context, String nom, int distance) {
    Resources res = context.getResources();
}