1


いくつかのビューIDを使用したいのですが、それらすべてを反復処理するループが必要です。これが私が意味することです:

for (int i = 0;i<10;i++) {
    TextView tv = (TextView) findViewById(R.id.txt+i);
}

もちろんそれは間違っていますが、私がレイアウト10にあるとしましょうTextViews

txt0

txt1

txt2

.

.

.

txt9

ループで次のようなことを実行したい:

TextView tv = (TextView) findViewById(R.id.txt0);
TextView tv = (TextView) findViewById(R.id.txt1);
.
.
.
TextView tv = (TextView) findViewById(R.id.txt+9);

出来ますか??

ありがとう!

4

3 に答える 3

4

次のような名前でIDを見つけることができます。

for(int i=0;i<10;i++){
     int id = getResources().getIdentifier("txt" + i, "id", context.getPackageName());
     TextView tv = findViewById(id);
     // but what here?
}

ただし、これはテキストビューを10回割り当てるだけです。この後何してるの?これがどのように役立つかはわかりませんが、おそらくそれを基に構築することができます。

于 2012-12-01T16:31:54.660 に答える
0

代わりにこれを試してください

TextView tv = new TextView(context); 

ループインデックスのようにタグを設定し、タグでアクセスします

于 2012-12-01T16:27:57.977 に答える
-1

これを試して:

TextView[] tv=new TextView[10];
for (int i = 0;i<10;i++) {
    tv[i] = (TextView) findViewById(R.id.txt+i);
 tv[i].setId(1000+i);

}

テキストビューを使用する場合。tv[1]...などを使用する

于 2012-12-01T16:30:20.507 に答える