我正在尝试使用
Android中的for循环创建一个对象数组.该数组包含一个从数据库中获取的字符串和一个图像(为了方便起见,我将图像保持在同一个图像中).
我从以下开始(这确实有效):
ItemData[] itemsData = {
new ItemData(dbString[0], R.mipmap.ic_launcher),
new ItemData(dbString[1], R.mipmap.ic_launcher),
new ItemData(dbString[2], R.mipmap.ic_launcher),
new ItemData(dbString[3], R.mipmap.ic_launcher),
new ItemData(dbString[4], R.mipmap.ic_launcher)
};
我想在for循环中创建上面的内容,这样当数据库中的行数发生变化时,创建的对象数量就会增加,而不必每次都修改代码.
我尝试了几种不同的实现,最接近的是以下(变量b是数据库中的行数,dbString [i]是行中的“Name”字段):
ItemData[] itemsData = new ItemData[0];
for(int i = 0;i < b;i++) {
ItemData[i] = new ItemData[]{
new ItemData(dbString[i], R.mipmap.ic_launcher)
};
}
然而,这仍然不起作用.被买的唯一错误是在上面第3行的ItemData [i]上有一个表达式.
ItemData被传递给适配器,然后生成卡片的回收者视图.
我对编程很新,并研究过这个问题,但我的答案很简单.
最佳答案 一旦尝试这样
ItemData[] itemsData = new ItemData[b];
for(int i = 0;i < b;i++) {
itemsData[i] = new ItemData(dbString[i], R.mipmap.ic_launcher);
}
希望这会对你有所帮助.