2011-08-07 66 views
0

在我的應用程序中,我有一個tablelaayout,裏面有很多editTexts。當我點擊「保存」按鈕時,我想訪問所有在editTexts中輸入的值。我在創建表時在運行時分配了ID。現在,當點擊「保存」按鈕時,如何從editTexts訪問值...?我用下面的東西來分配ID,從editText獲取內容

for(int i=0;i< no_of_rows ;i++) 
    for(int j=0;j<5;j++) 
    { 
    ............... 
    assignment.setId(i+j); 
    ............. 
    } 

任何人都可以提出一個解決方案..?

回答

0

其他不錯的解決方案是循環瀏覽一些佈局的所有孩子,所以你不需要設置任何特殊的ID。只需嘗試:

LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 
child_count = layout.getChildCount(); 

for (int i=0; i<child_count; i++) 
{ 
    EditText text = (EditText) layout.getChildAt(i); 
    // do work with text 
} 

使用其他代碼,您可以對其他任何佈局層次結構執行此操作。

+0

我在表格的佈局和IM 3行得到childCount爲3.在每一行中,我有2個textEdits,我可以使用getChildAt()..訪問它們嗎? – Kishan

+0

我明白了。稍後會發布更新後的答案。 :)謝謝你teepee :) – Kishan

+0

確保你用這段代碼捕獲'ClassCastExceptions',如果不是所有的視圖都是'EditTexts'。 –

0

如何像:

ArrayList<String> strings = new ArrayList<String>(); 
for(int i=0;i< no_of_rows ;i++) 
    for(int j=0;j<5;j++) 
    { 
    EditText text = (EditText)ActivityName.this.findViewById(i+j); 
    strings.add(text.getText().toString()); 
    } 
} 

這會給你所有的所有文本的價值在一個大陣。如果這不是你想要的,讓我知道,我會看看我是否可以調整代碼。

+0

行,EditText text =(EditText)findViewById(i + j),正在拋出classCastException .. – Kishan

+0

我已經更新了我的答案,雖然有點難以知道什麼是錯的,但沒有看到更多的代碼 – Pikaling

+0

它仍然給出同樣的問題。您希望查看哪部分代碼...? – Kishan