从Android中动态创建的表行读取值时出错
因此,我有两个动态创建的TableRow。每个TableRow都有两个TextView。我有一个按钮,单击该按钮可以获取表中每个TableRow中第二个和第三个TextView的所有值。我已经尝试使用下面的代码来实现这一点从Android中动态创建的表行读取值时出错,android,tablerow,Android,Tablerow,因此,我有两个动态创建的TableRow。每个TableRow都有两个TextView。我有一个按钮,单击该按钮可以获取表中每个TableRow中第二个和第三个TextView的所有值。我已经尝试使用下面的代码来实现这一点 mSubmitOrders.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if(mTable.get
mSubmitOrders.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(mTable.getChildCount()>1){
for(int i = 0; i < mTable.getChildCount(); i++){
TableRow tr = (TableRow)mTable.getChildAt(i);
TextView code = (TextView) tr.getChildAt(1);
TextView quantity = (TextView) tr.getChildAt(2);
String Scode = code.getText().toString();
Log.i("TAG", Scode);
String Squantity = quantity.getText().toString();
Log.i("TAG", Squantity);
}
}
已解决:
在@zacck获得帮助后,我终于解决了这个问题:
for(int i = 0; i < mTable.getChildCount(); i++){
TableRow tr = (TableRow) mTable.getChildAt(i);
LinearLayout l1 = (LinearLayout)tr.getChildAt(1);
LinearLayout l2 = (LinearLayout)tr.getChildAt(2);
TextView code = (TextView)l1.getChildAt(0);
sCode = code.getText().toString();
Log.v("Inserted---->", sCode);
codeA[i]=sCode;
TextView quantity = (TextView)l2.getChildAt(0);
sQuantity = quantity.getText().toString();
Log.v("Inserted--->", sQuantity);
quantityA[i]=sQuantity;
}
for(int i=0;i”,sCode);
codeA[i]=sCode;
TextView数量=(TextView)l2.getChildAt(0);
sQuantity=quantity.getText().toString();
Log.v(“插入-->”,平方);
数量a[i]=平方;
}
在此之前,您必须通过setTag(position)
标记行的单个视图,或者您可以使用任何唯一值作为参数。然后,您可以通过引用getTag()
来获取视图内容。tablerows是在TableLayout中动态创建的……因此,当您说我使用setTag(position)时,我假设position是一个int值来唯一标识tablerow?我该怎么做?对于每一行,你可以将标记设置为row.setTag(“row NO”);然后,对于该行中的每个视图,将标记设置为。。对于(int i=0;i
for(int i = 0; i < mTable.getChildCount(); i++){
TableRow tr = (TableRow) mTable.getChildAt(i);
LinearLayout l1 = (LinearLayout)tr.getChildAt(1);
LinearLayout l2 = (LinearLayout)tr.getChildAt(2);
TextView code = (TextView)l1.getChildAt(0);
sCode = code.getText().toString();
Log.v("Inserted---->", sCode);
codeA[i]=sCode;
TextView quantity = (TextView)l2.getChildAt(0);
sQuantity = quantity.getText().toString();
Log.v("Inserted--->", sQuantity);
quantityA[i]=sQuantity;
}