0

次のように、ループ内でcounterを使用して宣言された変数にアクセスするにはどうすればよいですか。

宣言された変数:

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<Button> myBtnList = new ArrayList<Button>();
myBtnList.add(square1);

すべてのボタンが追加されるまで追加してから、上記のようにforeachループを使用します。

于 2012-04-20T19:27:26.760 に答える
0

他の人が述べているように、これはどのプログラミング言語でも悪い習慣です。物事のリスト(あなたの場合Buttons)にアクセスしたい場合は、リストまたは配列を使用する必要があります。

のを使用した例を次に示しArrayListます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 に答える