2013-07-29 24 views
-1
TextView text; 
for (int j = 1; j < 3; j++) 
{ 
    text+j = new TextView(this); 
} 

預期輸出:如何將一個整數值附加到textview名稱?

text1 = new TextView(this); 
text2 = new TextView(this); 
text3 = new TextView(this); 

但我得到的錯誤,而運行過程中出現這個代碼..

+0

對不起,我認爲你很困惑。這是無法完成的。你想要做什麼?我認爲你認爲解決你的問題是錯誤的。 – m0skit0

+0

java101,關於變量名稱和訪問變量的章節。 – njzk2

+0

你想在Java中做參考算術嗎?壞小子! ;) – Patrick

回答

0

在這種情況下,你最好uzing的數組。

TextView[] tv = new Textview[3]; 
for(int i = 0; i < 3; i++) 
    tv[i] = new Textview(this); 

您發佈的代碼試圖動態生成變量,這是無法完成的。

+0

Devolus - Thnx .. – localhost

+0

歡迎您。你應該接受答案。 – Devolus

2

您不能在Java中將整數值附加到變量名中,就像您正在嘗試的那樣。你想要的是一組TextView's爲你的目的。你可以做到這一點如下:

int textViewCount = 3; 
TextView[] textViewArray = new TextView[textViewCount]; 

for(int i = 0; i < textViewCount; i++) { 
    textViewArray[i] = new TextView(this); 
} 

希望這會有所幫助。

+0

謝謝你shobhit puri – localhost

6

這從來不適用於Java。你不能在Java中動態地命名變量。該名稱已在編譯時檢查。因此,L.H.S這樣的表達式將不會起作用,例如text+j。您可以使用arrays

您可以改爲定義一個TextView的數組。像:

final int SIZE = 3; 
TextView[] textViews = new Text[SIZE]; 
for (int j = 0; j < SIZE; j++) 
{ 
    textViews[j] = new TextView(this); 
} 

一旦陣列TextView[] textViews所有元素都被初始化,您可以使用指數textViews[0],textViews[1]....訪問單個元素。記住陣列的索引編號從0array.length-1,在你的情況下從02

enter image description here

+0

thnx朋友..它的工作 – localhost

相關問題