如何在Android中使用For循环创建对象数组

时间:2015-02-20 12:09:22

标签: java android arrays

我试图在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正在传递给适配器,然后生成卡片的回收者视图。

我对编程很新,并研究过这个问题,但我的答案很简单。

1 个答案:

答案 0 :(得分:2)

一旦尝试这样

ItemData[] itemsData = new ItemData[b];
for(int i = 0;i < b;i++) {
itemsData[i] = new  ItemData(dbString[i], R.mipmap.ic_launcher);
}

希望这会对你有所帮助。