我创建了一个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);
提前完成
答案 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();
希望它会对你有所帮助。