我有很多图像在绘制,我希望放入一个数组。手动将它们放入数组会花费太长的时间和代码。我想知道是否有一种方法来循环r.drawable
,如下所示:
ArrayList<Integer> imgArr = new ArrayList<>();
for(int k=0; k<R.drawable.size(); k++) {
imgArr.add(R.drawable.get(k));
}
首先,您应该稍微了解一下R类:在这里阅读更多内容
简而言之:r
类是一个动态生成的类,它包含内部类(如drawable
类)。这些内部类包含多个整数常量,它们链接到相应的资源
这意味着,由于这里的drawable被定义为r.drawable
类的成员,我们需要使用反射来访问它们。首先,我们需要获得drawable
子类的一个实例。不幸的是,这个类的构造函数是私有的,但是我们可以使用更多的反射来解决这个问题:
Class<R.drawable> drawableClass = R.drawable.class;
R.drawable instance = (R.drawable) drawableClass.getConstructors()[0].newInstance();
List<Integer> drawables = new ArrayList<>();
for (Field field :
drawableClass.getDeclaredFields()) {
int value = field.getInt(instance);
drawables.add(value);
}
public static List<Integer> getDrawablesList() throws IllegalAccessException, InvocationTargetException, InstantiationException {
Class<R.drawable> drawableClass = R.drawable.class;
R.drawable instance = (R.drawable) drawableClass.getDeclaredConstructors()[0].newInstance();
List<Integer> drawables = new ArrayList<>();
for (Field field :
drawableClass.getDeclaredFields()) {
int value = field.getInt(instance);
drawables.add(value);
}
return drawables;
}
(需要“org.jetbrains.kotlin:kotlin-reflect:your_kotlin_version”依赖项)
private fun getDrawablesList() : List<Int> {
val drawableClass = R.drawable::class
val instance = drawableClass.constructors.first().call()
val drawablesList = mutableListOf<Int>()
for (field in instance.javaClass.declaredFields) {
val test = field.getInt(instance)
drawablesList.add(test)
}
return drawablesList
}
问题内容: Go的范围可以遍历地图和切片,但是我想知道是否有一种方法可以遍历一系列数字,例如: 还是有一种方法可以像Go语言中的Ruby 类那样在Go中表示整数范围? 问题答案: 您可以并且应该只编写一个for循环。简单,明显的代码就是Go方式。
我的方法取得了90%的成功,但当响应在一个子键中有多个条目时,逻辑就会失败,我无法将一个通用逻辑放在适当的位置,该逻辑将在所有情况下运行。 响应样本为 现在,我的用例说您搜索John文本,然后items数组将包含许多对象,这些对象的项是。名称或项目。部分。说明应包含“John”关键字 我放置的匹配逻辑运行良好,因为我正在迭代项[]。名称和项目。第[]节。描述 主要的挑战来自于[*]节。说明包含如下
我使用以下行对Sqlite查询的行进行循环。 当行数大约为15000时,需要很长时间。空的块需要大约4秒,而有一些代码的
问题内容: 为什么?将迭代器项指针移到第一位置的最佳方法是什么? 问题答案: 为什么? 因为如果强制迭代器具有重置方法,则 每个 迭代器都必须具有重置方法。这给每个迭代器编写者额外的工作。再加上一些迭代器确实很难重置(或者真的很昂贵),并且您不希望用户对其调用reset。文件或流上的迭代器就是很好的例子。 将迭代器项指针移到第一位置的最佳方法是什么? 创建一个新的迭代器。它很少比重置昂贵。
我试图解决这个问题:“2520是最小的数字,可以被1到10的每个数字除,没有任何余数。 可以被1到20的所有数字整除的最小正数是多少?" 请不要告诉我答案,我真的很想自己解决。我只需要一个关于问题数学方面的建议。问题是每个周期添加一个不是一个好主意,因为这个过程太慢了。或者变量类型不长的问题? 我试图得到(1到10)和(1到17)之间所有数字的等分数,该算法运行良好。 我期望得到特定的整数,但得到
我做这个迭代是为了对DataFrame的每个值执行不同的函数: 作为xxx一个2列数据帧