我正在尝试创建一个显示学生列表的Android应用。

我创建了一个名为Classmates的类来定义每个学生:

public class Classmates {
    String name;
    int classNum;
    int drawableId;

    public Classmates(String name, int classNum, int drawableId) {
        this.name = name;
        this.classNum = classNum;
        this.drawableId = drawableId;
    }
}


对于每个学生,我都有一张带有编号文件名的照片(R.drawable.num1R.drawable.num2,...)。但是,当我尝试初始化每个学生时:

private void initializeData() {
    classmates = new ArrayList<>();
    for(int i = 1; i <= 38; i++)
    {
        // Exclude student 32
        if(!(i==32)) classmates.add(new Classmates(classmateName[i],R.drawable.num(i)); // error
    }
}


它不起作用,给我一个错误。如何遍历所有可绘制对象?

最佳答案

您是否尝试过getIdentifier()

private void initializeData() {
    classmates = new ArrayList<>();
    for (int i = 1; i <= 38; i++) {
        //Exclude number 32
        if (!(i == 32)) {
            Context ctx = getContext();
            int resId = ctx.getResources().getIdentifier(String.format("num%d", i), "drawable", ctx.getPackageName());
            classmates.add(new Classmates(classmateName[i], resId);
        }
    }
}

09-11 17:17