如何将int转换为ID?

时间:2017-10-09 22:34:36

标签: java android

我有9个按钮(button1 ...按钮9),我生成随机数(1-9)。

我想随机更改与随机数具有相同编号的按钮的BG颜色。 = rand.Num = 6 - &gt; button6有BG红色。 Thx <3

2 个答案:

答案 0 :(得分:0)

我不确定这是否是你需要的,

    int[] buttons = {
            R.id.button1,
            R.id.button2,
            R.id.button3,
            R.id.button4,
            R.id.button5,
            R.id.button6,
            R.id.button7,
            R.id.button8,
            R.id.button9
    };
    int[] bgColors = {
            Color.MAGENTA,
            Color.BLACK,
            Color.BLUE,
            Color.CYAN,
            Color.RED,
            Color.YELLOW,
            Color.GREEN,
            Color.GRAY,
            Color.DKGRAY
    };
    for (int i=0;i<buttons.length;i++) {
        Random rand = new Random();
        int id = rand.nextInt((9 - 1) + 1) + 1;
        Button button = (Button)findViewById(buttons[i]);
        button.setText("ID"+String.valueOf(id));
        button.setBackgroundColor(bgColors[id-1]);
    }

答案 1 :(得分:0)

您可以在按钮视图中使用android:tag。在您的视图中,设置属性标记:

<Button
   android:id="button_1"
   android:layout_weight="wrap_content"
   android:layout_height="wrap_content"
   android:tag="1"/>

然后您可以使用 findViewByTag()

int[] colors = {
        ...
        Color.RED, // the 6th color.
        ...
};

Random rand = new Random();
int tag = rand.nextInt((9 - 1) + 1) + 1;

Button button = (Button) findViewByTag(String.valueOf(tag));
button.setBackgroundColor(colors[tag - 1]); // -1 because array start from 0.