你如何循环查看id?

时间:2012-11-24 20:44:08

标签: android

对于我的Android应用程序,我需要创建一个View ID的数组。

数组将保存81个值,因此逐个添加它们非常冗长。 这就是它现在的样子:

cells[0] = R.id.Square00;
cells[1] = R.id.Square01;
cells[2] = R.id.Square02;
cells[3] = R.id.Square03;
cells[4] = R.id.Square04;
cells[5] = R.id.Square05;
//All the way to 80.

是否有更短/更有效的方法?

2 个答案:

答案 0 :(得分:5)

谢天谢地,请使用getIndentifier()

Resources r = getResources();
String name = getPackageName();
int[] cells = new int[81];
for(int i = 0; i < 81; i++) {
    if(i < 10)
        cells[i] = r.getIdentifier("Squares0" + i, "id", name);
    else
        cells[i] = r.getIdentifier("Squares" + i, "id", name);
}

答案 1 :(得分:1)

  

Sam的答案更好,但我认为我应该分享另一种选择

int [] ids = new int [] {R.id.btn1, R.id.btn2, ...};
Button [] arrayButton = new Button[ids.length];

for(int i=0 ; i < arrayButton.length ; i++)
{
  arrayButton[i] = (Button) findViewById(ids[i]);
}

Sam答案的修改形式

不需要if else使用Integer String Formating

Resources r = getResources();
String name = getPackageName();

int[] resIDs = new int[81];

for(int i = 0; i < 81; i++) 
{
        resIDs[i] = r.getIdentifier("Squares0" + String.format("%03d", i), "id", name);
}