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

我正在尝试使用
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);
}

希望这会对你有所帮助.

点赞