tv1、tv2、tv3、tv4...tv48 など、48 個の変数 (TextView) があります。
同じ行を 48 回書き留めたくないので、for ループを使用してこれらの変数の値を設定します。
このようなもの:
for (int i=1; i<49; i++)
{
"tv"+i.setText(i);
}
これを達成する方法は?
次のように初期化します。
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);
}
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 を配列に追加する必要があります。
"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}
それが役立つことを願っています!