Array of ImageButtons, assign R.view.id from a variable

前端 未结 3 1999
余生分开走
余生分开走 2021-02-14 23:05

Hey there. My app is going to be using an array of 64 ImageButtons (8x8), and they\'re all already declared in my XML Layout with names like one1, two5, eight8, etc. Rather than

相关标签:
3条回答
  • 2021-02-14 23:52

    I like AndrewKS' for, it's more elegant. Just keep in mind that findViewById receives an integer rather than a String. So you will have to do something like:

    int resID = getResources().getIdentifier(btnID, "drawable", "com.your.package");
    musicGrid[i][j] = (ImageButton) findViewById(resID);
    
    0 讨论(0)
  • 2021-02-14 23:54

    Unless there's some specific need to do it as individual ImageButtons, you might be better off using a GridView.

    Here is a tutorial using images in a GridView using an adapter.

    0 讨论(0)
  • 2021-02-15 00:08

    If you didn't already hardcode the buttons in the xml, I would have said to do it programmatically with a ViewInflater, but since you did here's the code:

    String[] number_as_word = ["one", "two", "three", "four", "five", "six", "seven", "eight"];
    for (int i = 0; i < 8; i++) {
      for (int j = 0; j < 8; j++) {
        musicGrid[i][j] = (ImageButton) findViewById("R.id." + number_as_word[i] + (j+1));
      }
    }
    
    0 讨论(0)
提交回复
热议问题