5

私のAndroidアプリでは、ViewIDの配列を作成する必要があります。

配列は81個の値を保持するため、1つずつ追加するのは非常に時間がかかります。これが今の様子です:

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.

これを行うためのより短い/より効率的な方法はありますか?

4

2 に答える 2

6

ありがたいことに、あります。使用getIdentifier()

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);
}
于 2012-11-24T20:58:18.463 に答える
1

サムの答えはより良いですが、私は別の方法を共有する必要があると思います

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]);
}

サムアンサーの修正された形式

それ以外の場合は整数文字列フォーマットを使用する必要はありません

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);
}
于 2015-05-11T15:03:28.753 に答える