【问题标题】:How to Create Object Array with For Loop in Android如何在 Android 中使用 For 循环创建对象数组
【发布时间】:2015-02-20 12:09:21
【问题描述】:

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

我对一般编程相当陌生,并且研究过这个问题,但我想出一个可行的答案。

【问题讨论】:

  • 根据想要的物品创建相同大小的数组:ItemData[] itemsData = new ItemData[b];
  • 我在输入问题并尝试过时想到了这一点,尽管这是问题的一部分,但并没有立即解决。谢谢。
  • +1 解释清楚的问题。但为了将来参考,这更像是一个一般的 Java 问题,而不是特定于 Android 的问题。如果搜索和阅读有关类似主题的 Java 编程,您肯定会找到更多信息。
  • 老实说,我正在尝试同时学习两者,因为我有一个想法,我不想尽快实施,它给了我学习的动力。尝试同时处理两者可能不是最好的主意。

标签: java android arrays


【解决方案1】:

这样尝试一次

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

希望对你有帮助。

【讨论】:

  • 效果很好,很简单。我不知道为什么我没有看到它。感谢您的帮助。
猜你喜欢
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-27
  • 2020-03-29
  • 1970-01-01
  • 2017-08-09
  • 2016-09-30
相关资源
最近更新 更多