我试图在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]
是"名称"字段在行中):
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
正在传递给适配器,然后生成卡片的回收者视图。
我对编程很新,并研究过这个问题,但我的答案很简单。
答案 0 :(得分:2)
一旦尝试这样
ItemData[] itemsData = new ItemData[b];
for(int i = 0;i < b;i++) {
itemsData[i] = new ItemData(dbString[i], R.mipmap.ic_launcher);
}
希望这会对你有所帮助。