我有while循环创建我的String数组,如下所示
String[] imageId = {"R.drawable.img0","R.drawable.img1"};
但我希望将其存储到整数数组
Integer[] imageId = {R.drawable.img20,R.drawable.img1};
答案 0 :(得分:0)
在不使用反射的情况下执行此操作的一种方法是为您拥有的所有drawable创建映射(因为您在编译时知道所有可绘制的资源):
static final Map<String, Integer> MAPPING;
static {
final Map<String, Integer> tempMapping = new HashMap<>();
tempMapping.put("R.drawable.img0", R.drawable.img20);
tempMapping.put("R.drawable.img1", R.drawable.img1);
tempMapping.put([your other drawables]);
MAPPING = Collections.unmodifiableMap(valuesByName);
}
之后,根据您应用的逻辑,您构建了一系列可绘制的&#39;名称,并将其转换为一系列drawables&#39; ids使用地图。
答案 1 :(得分:0)
我想将它存储到整数数组
以下是将数组变量保存为整数的示例:
int[] imageId = {R.drawable.image1, // index 0
R.drawable.image2, // index 1
R.drawable.image3, // index 2
R.drawable.image4 // index 3
};
要获取数组值:
int drawable1 = imageId[0] // returns R.drawable.image1
int drawable2 = imageId[1] // returns R.drawable.image2
int drawable3 = imageId[2] // returns R.drawable.image3
int drawable4 = imageId[3] // returns R.drawable.image4
希望这个例子可以帮到你很多。