Android 如何使用字符串数组中的ID将drawable中的图像列表添加到arraylist中

Android 如何使用字符串数组中的ID将drawable中的图像列表添加到arraylist中,android,Android,这是我的代码,请帮助检查我的问题 与res drawable中的图像同名的我的字符串列表: <resources> <string name="app_name">Intent Practice 1</string> <string-array name="list_name"> <item>akiza</item> <item>blueeyes</item&

这是我的代码,请帮助检查我的问题

与res drawable中的图像同名的我的字符串列表:

<resources>
    <string name="app_name">Intent Practice 1</string>
    <string-array name="list_name">
        <item>akiza</item>
        <item>blueeyes</item>
        <item>buster</item>
        <item>cyberdragon</item>
        <item>darklaw</item>
        <item>darkmagician</item>
        <item>darkmagiciangirl</item>
        <item>darkpaladin</item>
        <item>dragunity</item>
        <item>exodia</item>
        <item>gaia</item>
        <item>galaxyeyes</item>
        <item>harpies</item>
        <item>hope</item>
        <item>joey</item>
        <item>junk</item>
        <item>kaibaseto</item>
        <item>marik</item>
        <item>neos</item>
        <item>redeyes</item>
        <item>shaddoll</item>
        <item>shiningflare</item>
        <item>skulled</item>
        <item>spear</item>
        <item>stardust</item>
        <item>tourguide</item>
        <item>wingeddragon</item>
        <item>yamiyugi</item>
        <item>yudai</item>
        <item>yugimuto</item>
        <item>yuma</item>
        <item>yusei</item>
        <item>question</item>
    </string-array>
</resources>
我的班级

public class HinhAnh {
    private String Ten;
    private int Hinh;

    public HinhAnh(String ten, int hinh) {
        Ten = ten;
        Hinh = hinh;
    }

    public String getTen() {
        return Ten;
    }

    public void setTen(String ten) {
        Ten = ten;
    }

    public int getHinh() {
        return Hinh;
    }

    public void setHinh(int hinh) {
        Hinh = hinh;
    }
}
它们都导致我的适配器为空,那么我根本无法填充我的gridview。请帮忙

编辑: 我换了线以获得(位置),然后它就起作用了。但它仍然向我的适配器显示了错误点,这是我的适配器:

public class ImageAdapter extends BaseAdapter {

private Context context;
private int layout;
private List<HinhAnh> imageList;


public ImageAdapter(Context context, int layout, List<HinhAnh> imageList) {
    this.context = context;
    this.layout = layout;
    this.imageList = imageList;
}

@Override
public int getCount() {
    return 0;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

private class ViewHolder{
    ImageView imgHinh;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    if(convertView == null){
        holder = new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(layout, null);
        holder.imgHinh = convertView.findViewById(R.id.imgItem);
        convertView.setTag(holder);
    }
    else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.imgHinh.setImageResource(imageList.get(position).getHinh());

    return convertView;
}
错误:

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference
    at com.example.intentpractice.Answers.onCreate(Answers.java:18)
已解决,我忘记将getCount返回到array.size()。
谢谢大家

将图像添加到列表中的for循环中有一个问题。 对于位置0,arrayImg中只有一个元素,但您正在调用arrayImg.get(1),这会导致
java.lang.IndexOutOfBoundsException

将该行更改为:

for(int position=0;position}

明白了,我制作了阵列,然后我意识到问题来自我的适配器。
public class HinhAnh {
    private String Ten;
    private int Hinh;

    public HinhAnh(String ten, int hinh) {
        Ten = ten;
        Hinh = hinh;
    }

    public String getTen() {
        return Ten;
    }

    public void setTen(String ten) {
        Ten = ten;
    }

    public int getHinh() {
        return Hinh;
    }

    public void setHinh(int hinh) {
        Hinh = hinh;
    }
}
public class ImageAdapter extends BaseAdapter {

private Context context;
private int layout;
private List<HinhAnh> imageList;


public ImageAdapter(Context context, int layout, List<HinhAnh> imageList) {
    this.context = context;
    this.layout = layout;
    this.imageList = imageList;
}

@Override
public int getCount() {
    return 0;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

private class ViewHolder{
    ImageView imgHinh;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;

    if(convertView == null){
        holder = new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(layout, null);
        holder.imgHinh = convertView.findViewById(R.id.imgItem);
        convertView.setTag(holder);
    }
    else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.imgHinh.setImageResource(imageList.get(position).getHinh());

    return convertView;
}
        adapter = new ImageAdapter(this, R.layout.imageline, MainActivity.arrayImg);
    gridView.setAdapter(adapter);
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference
    at com.example.intentpractice.Answers.onCreate(Answers.java:18)