Android 如何使用字符串数组中的ID将drawable中的图像列表添加到arraylist中
这是我的代码,请帮助检查我的问题 与res drawable中的图像同名的我的字符串列表: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&
<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)