1

値を変更したい 24 個の TextView を含む画面があります。すべてのテキスト フィールドの値を変更する必要があるのは、どの順序であるかは問題ではありません。現在、私のコードは次のとおりです。

textView = (TextView) findViewById(R.id.textView1);
textView.setText(value1);
textView = (TextView) findViewById(R.id.textView2);
textView.setText(value2);
textView = (TextView) findViewById(R.id.textView3);
textView.setText(value3);
textView = (TextView) findViewById(R.id.textView4);
textView.setText(value4);
etc...

TextViews の数は 24 で一定です。ループ ソリューションを探していますが、R.id.textViewX 値 ID を動的に取得するという問題が発生します。次の方法で使用できるように、これを達成する簡単な方法はありますか。

// Somehow get textViewArray of textView id's //

for(int i=0;i<textViewArray.length;i++) {
  textView = (TextView) findViewById(textViewArray[i]);
  textView.setText(value[i])
}

Activity クラスでテキストフィールドを動的に作成するというアイデアにはオープンですが、XML ソリューションを探しています。arrays クラスを使用してこれを実行できるかどうかはわかりません。これが @drawables に対して行われたのを見たことがありますが、id に対しては決して行われませんでした

注意すべき重要なことは、textView がリストにないことです。

4

1 に答える 1

1

getIdentifier()次の方法を使用します。

for (int i = 0; i < 24; i++) {
     int id = getResources().getIdentifier("textView" + i, "id", getPackageName());
     TextView textView = (TextView) findViewById(id);
     textView.setText("Set text");
}
于 2013-07-10T16:14:16.223 に答える