我正在开发我的第一个Android应用。我的应用程序中有一个表格布局,它将动态添加行。但是,我想将表行转换为字符串。我试过“row.toString()”,但我没有得到预期的结果。请找到以下代码段:
View view = null;
for(i = 0, j = tblayout.getChildCount(); i < j; i++)
{
view = tblayout.getChildAt(i);
TableRow rw = (TableRow)tblayout.getChildAt(i);
ColorDrawable viewColor = (ColorDrawable) view.getBackground();
int colorId = viewColor.getColor();
if(colorId == Color.parseColor("#E143ED23")) {
num ++;
//temCnt = view.toString();
temCnt = rw.toString();
}
}
Toast.makeText(getApplicationContext(),temCnt, Toast.LENGTH_LONG).show();
但它没有显示实际的表行数据。它显示了一些ID或垃圾值。
我的要求是: 我有2个文本框和2个按钮。按下第一个按钮“确定”时,文本框内的值将与一个复选框一起填充到表格布局中。默认情况下,将检查行。但是用户可以取消选中每个项目。之后,当按下第二个按钮“全部保存”时,它将搜索所有已检查的表行,并应将表行插入到我的MS SQL表中。
有没有办法将表行转换为Java中的字符串?我真的困在这。如果有人可以帮助我这将是非常有帮助的。 请帮忙......
答案 0 :(得分:1)
toString()是Java,C#和其他编程语言中非常基本的方法。 Java的Object类有一个基本的实现,你可以在任何继承自Object的类(也就是每个类:)中覆盖这个方法。我不知道那些开发了TableRow类的Android是否已经覆盖了这个方法。可能你得到的是TableRow对象的一些不可读的,毫无意义的表示。
假设您在TableRow中有一个名为txtName的TextView,后跟第二个名为txtNumber的TextView。您可以通过执行以下操作获得所需内容:
...
ColorDrawable viewColor = (ColorDrawable) view.getBackground();
int colorId = viewColor.getColor();
if(colorId == Color.parseColor("#E143ED23")) {
num ++;
//temCnt = view.toString();
TextView nameField = (TextView) rw.findViewById(R.id.txtName);
TextView numberField = (TextView) rw.findViewById(R.id.txtNumber);
temCnt = nameField.getText().toString() + ": " + numberField.getText().toString();
}
...