0

如何在循环中使用计数器访问声明的变量,如下所示:

声明的变量:

Button square0, square1, square2, square3, square4, square5, square6,
        square7, square8, temp;

使用这样的循环访问它们:

for (int i = 0; i < 9; i++) {
    (Button) ("square"+i).setBackgroundResource();
4

3 回答 3

3

你不能不求助于一些非常可疑的魔法(我什至认为你不能用 Java 中的反射来做到这一点)。

请改用数组

于 2012-04-20T19:23:59.540 回答
2

这很容易...

Button[] btnArray = new Button[10]; 
 //assign all squares to the array 
btnArray[0] = square1;
for(Button btn : btnArray){
btn.setBackGroundResource();
}

甚至更好地使用 List 之类的

List<Button> myBtnList = new ArrayList<Button>();
myBtnList.add(square1);

添加直到添加所有按钮,然后使用 for each 循环,如上图所示。

于 2012-04-20T19:27:26.760 回答
0

正如其他人所提到的,这在任何编程语言中都是不好的做法。如果您想访问事物列表(在您的情况下Buttons),您应该使用ListArray

ArrayList这是一个使用of的示例Buttons

List<Button> buttonList = new ArrayList<Button>();

Button button1 = new Button();
Button button3 = new Button();
Button button2 = new Button();

buttonList.add(button1);
buttonList.add(button2);
buttonList.add(button3);

// How to get a button out
for(int i = 0; i < buttonList.size(); i++)
    myButton = buttonList.get(i);
    // Do something with myButton here.
}
于 2012-04-20T19:31:02.340 回答