我从一个自定义的多级对象(这里称为venueCounter)的大列表中声明了一个简单的自定义对象数组,其中仅包含填充列表所需的信息。我这样做是因为它更容易对我的列表进行排序并在我的列表中创建部分。
但是当我尝试它时,我得到一个空指针异常。我认为这很奇怪,因为当我尝试填充 stringArray 时它工作正常。这是我失败的代码:
ListData ld[]= new ListData[venueCounter.size()];
int selectedPic;
JJsonResponse e;
for(int i=0;i < venueCounter.size() ;i++){
selectedPic = 0;
e = venueCounter.get(i);
ld[i]= null;// data in listdata object
ld[i].name=e.venue.name;
ld[i].tip_nl=e.venue.tip;
ld[i].tip_en=e.venue.tip_en;
ld[i].venueID=e.venue.id;
// foto uitkiezien
if (e.venue.venue_photos.isEmpty() == false){ // there is a picture
for(int j=0; j < e.venue.venue_photos.size() ;j++){ // use user selected picture
if(e.venue.venue_photos.get(j).selected == true){
selectedPic = j;
}
ld[i].photoUrl=e.venue.venue_photos.get(selectedPic).medium;
}
}else
{
ld[i].photoUrl="url for when there is no url";
}
Log.i("url nr. " + String.valueOf(i), ld[i].photoUrl);
}
有错误的行是:
ld[i].name=e.venue.name;
但奇怪的是,当我声明一个字符串数组并填充它时:
String name[]=new String[venueCounter.size()];
并在代码中进一步
name[i]=e.venue.name;
一切正常!但我想要这个列表数据数组,所以我可以把它放在我的适配器中并使用它。有谁知道为什么我的代码失败以及我做错了什么?