我有9个按钮(button1 ...按钮9),我生成随机数(1-9)。
我想随机更改与随机数具有相同编号的按钮的BG颜色。 = rand.Num = 6 - &gt; button6有BG红色。 Thx <3
答案 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.