有没有一种方法(而不是单独使用一种方法)使用数组来定义10个按钮及其关联的图像(我在res文件夹中拥有这些图像)?
我已经在xml中创建了10个按钮。
我的资源文件夹中有10个自定义按钮图像。
图像分别命名为my_button_0,my_button_1等。
例如:
for (int a = 0; a < 10; a++){
String z = "my_button_" + Integer.toString(a);
Button z = findViewById(R.id.z);
z.setBackgroundResource(R.drawable.z);
}
找到了几个相关问题,但不是这样。谢谢。
答案 0 :(得分:0)
不幸的是,您无法做到。您可以执行以下操作:
private int getButtonId(int i) {
switch (i) {
case 0:
return R.id.my_button_1;
case 1:
return R.id.my_button_2;
case 2:
return R.id.my_button_3;
case 3:
return R.id.my_button_4;
case 4:
return R.id.my_button_5;
case 5:
return R.id.my_button_6;
case 6:
return R.id.my_button_7;
case 7:
return R.id.my_button_8;
case 8:
return R.id.my_button_9;
case 9:
return R.id.my_button_10;
}
}
//在您的方法中
for (int a = 0; a < 10; a++){
Button z = findViewById(getButtonId(a));
z.setBackgroundResource(R.drawable.z);
}
答案 1 :(得分:0)
假设按钮id命名为button1,button2 ....,您可以这样:
for (int i = 1; i <= 10; i++) {
int btnId = getResources().getIdentifier("button" + i, "id", this.getPackageName());
Button btn = findViewById(btnId);
int drawableId = getResources().getIdentifier("my_button_"+i, "drawable", getPackageName());
btn.setBackgroundResource(drawableId);
}