4

tv1、tv2、tv3、tv4...tv48 など、48 個の変数 (TextView) があります。

同じ行を 48 回書き留めたくないので、for ループを使用してこれらの変数の値を設定します。

このようなもの:

for (int i=1; i<49; i++)
{
        "tv"+i.setText(i);
}

これを達成する方法は?

4

3 に答える 3

5

次のように初期化します。

TextView[] tv = new TextView[48];

for次に、次のようにループを使用してテキストを設定できます。

for(int i=0; i<48; i++)
{
   tv[i].setText("your text");
}

編集: XML ファイルで、すべてのテキストビューに同一の ID を指定します。たとえば、tv0、tv1、tv2 など。これらの ID を文字列として持つ文字列配列を初期化します。

String ids[] = new String[48];
for(int i=0; i<48; i++)
{
   ids[i] = "tv" + Integer.toString(i);
}

の配列を初期化するには、次のTextViewようにします。

for(int i=0; i<48; i++)
{
   int resID = getResources().getIdentifier(ids[i], "id", "your.package.name");
   tv[i] = (TextView) findViewById(resID);
}
于 2012-09-18T18:17:24.997 に答える
2
TextView[] textViews = new TextView[48];

int[] ids = new int[48];

for(int i=0;i<48;i++) {
    textViews[i] = (TextView) findViewById(ids[i]);
}

for(int i=0;i<48;i++) {
    textViews[i].setText(String.valueOf(i));
}

idsここでは、すべての ID を配列に追加する必要があります。

于 2012-09-18T18:18:14.467 に答える
1
"tv"+i

リフレクションでのみ使用できます。

これらの TextViews を配列に入れて、

for (int i=0; i<textViews.length; i++)
{
        textViews[i].setText(""+i);//be a String. not an int...
}

どこで使用しますかtextViews = new TextViews[]{tv1,tv2..tv48}

それが役立つことを願っています!

于 2012-09-18T18:17:19.803 に答える