2014-10-20 155 views
0

在我的應用程序中,我在執行過程中動態生成TextViews/Edits。我也有一個TableLayout,所以每一組TextEdit/TextViews將在一個新行上。我想使用行號(1 ... N)作爲一種ID來標識每組textEdit/TextViews(例如,行1將具有TEdit1,Tview1,行2將具有TEdit2,TView2..etc)。動態生成Android TextView/EditText

我有在每個tEdit的onchange上調用的函數。例如,當調用onChange方法時,TEdit 1改變TView1的值。該函數的設置使我可以傳遞TView ID,並正確地更改它。我的問題是,我不知道如何使用一個變量作爲tView id。該函數的參數,除其他外,ROWID(1,2,3..etc),所以我想知道是否有建立這樣一個變量的方式:

String VariableName = "tEdit" + i; (i is the rowId that its passed through as a parameter) 

然後用它來這樣的事情:

MyActivity.VariableName.setText("Change proper text"); 

很明顯,那個不工作。我已經做了一些研究,並且看到了類似getIdentifier的東西,但是我沒有實現這個目標。任何幫助將不勝感激。

+1

爲什麼你不使用,而不是試圖定義自定義名稱基於行號Textviews數組等等? – 2014-10-20 21:50:10

+0

謝謝你的建議Shobhit!我嘗試了這一點,它的所有工作都非常完美,而且更加乾淨/方便。謝謝。我不確定這是否符合我的問題的「答案」,但如果您將其發佈爲^ _ ^,我會接受它。 – 2014-10-22 21:57:57

+0

很高興幫助奧斯卡。我已經把它作爲答案,以防萬一以後有人遇到同樣的問題。 – 2014-10-22 22:46:52

回答

0

您可以使用,而不是試圖定義自定義名稱基於行號等Textview的數組

0

如果我很好理解你的問題,也許你可以找到有用的「標籤」屬性。我的意思是,當你動態地添加新行的表,你可以簡單地標籤標識符與他的索引位置的表裏面添加這個新行

TableRow tr = new TableRow(this); 
tr.setTag(indexPosition); 

所以,當你需要知道當前的位置你只需撥打

int position = tr.getTag(); 

我希望這是你的問題!