2013-08-29 102 views
0

我已經創建了一個tablelayout,每行都有3個edittexts的動態創建行。假設有5行,每個都有3個edittext,我怎樣才能從每一行的每一個第一個edittext中輸入值到arraylits並計算它們。如何從動態創建的edittext中獲取值

這裏是我到目前爲止的代碼:

Public void addRow (View v) { 
TableRow row = new TableRow(this); 
EditText et1 = new EditText(this); 
EditText et2 = new EditText(this); 
EditText et3 = new EditText(this); 

idCount++; 
mRowCount++; 

et1.setTag(a + idCount); 
et1.setText(a + idCount); 
et2.setTag(b + idCount); 
et2.setText(b + idCount); 
et3.setTag(c + idCount); 
et3.setText(c + idCount); 

mLayout.addView(row); 
row.setId(mRowCount); 
row.addView(et1); 
row.addView(et2); 
row.addView(et3); 

Thanx提前

回答

0
ArrayList<String> stringList = new ArrayList<String>(); //Generic ArrayList to Store your Strings 

stringList.add(et1.getText()) ;//do this for your 3 textviews 
stringList.add(et2.getText()) ; 
stringList.add(et3.getText()) ; 
int count=0; 
Iterator<String> iterator = stringList.iterator(); 
    while (iterator.hasNext()) { 
     count=count+Integer.parseInt(iterator.next()); 
    } 
+0

我要插入int值,我應該使用arraylist 或arraylist ,然後嘗試從edittext arraylist geting值嗎? – Uys

+0

我更新了我的答案。你可以做arraylist ,然後將插入的值轉換爲整數: Integer.parseInt(iterator.next()) 或者你可以解析它並使用ArrayList 。使用我提供的代碼,它將工作。爲你所需要的。 歡呼聲 – Dyna

0

1)如果你有參考,你可以用getText()訪問它。

2)如果您有沒有參考,你必須設置一個ID,以每EditText和您可以通過gettext的()方法

edt1.gettext(); 

如果用findViewById()

0

達到這些目標正在進入字符串數據然後使用toString()方法作爲

String res=edt1.getText().toString(); 
0

德等待您可能最終創建的行數,我將在創建時存儲對EditText對象的引用。這可能意味着定義舉辦三屆的EditText對象行對象,但正如東創建地圖:

Map<String, List<EditText>> mRows = new HashMap<String, List<<EditText>>();

在創建新行,你可以修改代碼,以便存儲引用:

Public void addRow (View v) { 
TableRow row = new TableRow(this); 
EditText et1 = new EditText(this); 
EditText et2 = new EditText(this); 
EditText et3 = new EditText(this); 
List<EditText> row = new ArrayList<EditText>(); 
row.add(et1); 
row.add(et2); 
row.add(et3); 
mRows.add("" + idCount, row); 

我也將該代碼移入一個單獨的函數。

提交後,您現在可以遍歷地圖並從每個條目中提取第一個條目。

0

首先你必須從你的表格佈局採取的EditText(視圖)和

TableRow tr = (TableRow) v.getParent(); 

//索引表佈局列的應該是一個整數值。

EditText et = (EditText) tr.getChildAt(Your_Index); 
EditText et1 = (EditText) tr.getChildAt(Your_Index); 
EditText et2 = (EditText) tr.getChildAt(Your_Index); 

然後你會得到的EditText的值與下面的代碼

String a = et.getText().toString(); 
String b = et1.getText().toString(); 
String c = et2.getText().toString(); 

希望它會幫助你。

相關問題