如何从动态创建的edittexts中获取值

时间:2013-08-29 09:03:48

标签: java android arrays arraylist

我创建了一个tablelayout,其中包含动态创建的行,每行有3个edittexts。假设有5行,每行有3个edittexts,如何从每行的每个第一个edittext中输入所输入的值到arraylits并计算它们。

到目前为止,这是我的代码:

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);

提前完成

5 个答案:

答案 0 :(得分:0)

1)如果您有参考,可以使用getText()

访问它

2)如果您没有参考,则必须为每个EditText设置一个ID,然后您可以使用findViewById()

与他们联系

答案 1 :(得分:0)

通过getText()方法

    edt1.gettext();

如果输入字符串数据,则使用toString()方法作为

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

答案 2 :(得分: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());
    }

答案 3 :(得分:0)

根据您最终可能创建的行数,我会在创建EditText对象时存储对EditText对象的引用。这可能意味着定义一个行对象来保存三个EditText对象,但就像在东边创建一个Map一样:

    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);

我还会将该代码移动到一个单独的函数中。

提交后,您现在可以遍历地图并从每个条目中拉出第一个条目。

答案 4 :(得分:0)

首先,您必须从表格布局中获取EditText(View)和

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();

希望它会对你有所帮助。