Для цикла с именами объектов - PullRequest
1 голос
/ 31 октября 2011

Если у меня есть массив кнопок в Android и я хочу получить эти кнопки (findviewbyid) через цикл for, как мне это сделать? Допустим, я в своем XML определил button1, button2 и button3. Как мне назначить arr [0], arr [1] и arr [2] для них?

for(int a = 0; a < arr.length; a++){
     arr[a] = (Button) findViewById(R.id.button[a + 1]); //Doesn't work
}

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 31 октября 2011

Попробуйте реализовать это:

for(int a=0; a<arr.length; a++) {
    String buttonID = "btn" + a;
    int resID = getResources().getIdentifier(buttonID, "id", "com.package.your_app");   

    // To fetch Package name, you can directly call getPackageName() instead of static string "com.package.your_app

    buttons[a] = ((Button) findViewById(resID));
    buttons[a].setOnClickListener(this);
}
0 голосов
/ 31 октября 2011

Тогда эта работа:

for(int a = 0; a < arr.length; a++) {   
    String buttonId = "btn" + String.valueOf(a);
    int resButton = getResources().getIdentifier(buttonId, "id", "com.package.your_app");
    arr[a] = (Button) findViewById(resButton);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...