0

我创建了一个表格布局,其中包含动态创建的行,每行有 3 个编辑文本。假设有 5 行,每行有 3 个编辑文本,我怎样才能从每行的每个第一个编辑文本中获取输入的值到 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);

提前感谢

4

5 回答 5

0

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

2)如果你没有参考,你必须为每个人设置一个ID,EditText你可以用findViewById()

于 2013-08-29T09:06:06.680 回答
0

通过 getText() 方法

    edt1.gettext();

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

   String res=edt1.getText().toString();
于 2013-08-29T09:08:35.873 回答
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());
    }
于 2013-08-29T09:09:11.340 回答
0

根据您最终可能创建的行数,我将在创建 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);

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

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

于 2013-08-29T09:14:18.103 回答
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);  

然后您将使用以下代码获得该编辑文本的值

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

希望它会帮助你。

于 2013-08-29T09:20:27.380 回答