2013-07-10 51 views
1

我有一個屏幕有24個TextViews,我想改變它的值。不管按什麼順序我只需要改變每個文本字段的值。現在我的代碼如下:Android數組引用textViews

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

我願意在活動類動態創建文本框的想法,但要尋找一個XML解決方案。我不確定這是否可以使用數組類來完成。我已經看到這個爲@drawables完成,但從來沒有爲id的

要注意的是,textView的不在列表中。

回答

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"); 
} 
+1

不真實。這正是我期待的!謝謝。 –