gpt4 book ai didi

java - 在循环中按名称访问变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:51:16 25 4
gpt4 key购买 nike

我正在开发一个 Android 项目,我有很多可绘制对象。这些可绘制对象的名称均类似于 icon_0.pngicon_1.png ... icon_100.png。我想将这些可绘制对象的所有资源 ID 添加到整数数组列表中。 (对于那些不懂 android,只懂 Java 的人,我说的是静态变量,在一个类的静态内部类中,比如 R.drawable.icon_0。所有这些静态变量都是整数.)

有没有比一个一个添加更有效的方法呢?喜欢

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(R.drawable.icon_1);
list.add(R.drawable.icon_2);
...
list.add(R.drawable.icon_100);

我能以某种方式遍历它们吗?喜欢

for(int i=0; i<100; i++)
{
list.add(R.drawable.icon_+i); //<--- I know this doesn't work.
}

我无法控制这些静态整数所在的文件,而且我无法在运行时创建可绘制对象。

如有任何帮助,我们将不胜感激!

编辑

好的,我阅读了答案,但我有一个主要问题:我无权访问任何需要创建此 id 数组/列表的 Context 实例(我在静态初始值 block ),因此 getResources() 方法,其中两个答案建议的方法不起作用。还有其他方法吗?

最佳答案

resource 目录的 values 文件夹中创建一个 XML 文件。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="myIcons">
<item>@drawable/icon1</item>
<item>@drawable/icon2</item>
<item>@drawable/icon3</item>
<item>@drawable/icon4</item>
<item>@drawable/icon5</item>
...
...
</array>
</resources>

通过下面的代码,您就会明白这一点。

Resources res = getResources();
TypedArray myIcons= res.obtainTypedArray(R.array.myIcons); //mentioned in the XML
for(int i=0; i<100; i++)
{
Drawable drawable = myIcons.getDrawable(i);
list.add(drawable);
}

关于java - 在循环中按名称访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11814490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com