如何在循环中使用计数器访问声明的变量,如下所示:
声明的变量:
Button square0, square1, square2, square3, square4, square5, square6,
square7, square8, temp;
使用这样的循环访问它们:
for (int i = 0; i < 9; i++) {
(Button) ("square"+i).setBackgroundResource();
你不能不求助于一些非常可疑的魔法(我什至认为你不能用 Java 中的反射来做到这一点)。
请改用数组。
这很容易...
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 循环,如上图所示。
正如其他人所提到的,这在任何编程语言中都是不好的做法。如果您想访问事物列表(在您的情况下Buttons
),您应该使用List或Array。
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.
}