使用字符串定义按钮

时间:2018-11-01 20:33:53

标签: android arrays image button

有没有一种方法(而不是单独使用一种方法)使用数组来定义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);
}

找到了几个相关问题,但不是这样。谢谢。

2 个答案:

答案 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);
 }