经过一番反复尝试后,我弄清了这种技术,该技术允许您保留XML样式并避免使用CheckBalanceActivity的问题(即inflate()需要合并以附加到root并返回根节点)。 不需要运行时Activitys或new TextView()s。
码
注意:这里CheckBalanceActivity是Activity类的一些示例
TableLayout table = (TableLayout)CheckBalanceActivity.this.findViewById(R.id.attrib_table);
for(ResourceBalance b : xmlDoc.balance_info)
{
// Inflate your row "template" and fill out the fields.
TableRow row = (TableRow)LayoutInflater.from(CheckBalanceActivity.this).inflate(R.layout.attrib_row, null);
((TextView)row.findViewById(R.id.attrib_name)).setText(b.NAME);
((TextView)row.findViewById(R.id.attrib_value)).setText(b.VALUE);
table.addView(row);
}
table.requestLayout(); // Not sure if this is needed.
attrib_row.xml
style="@style/PlanAttributeText"
android:id="@+id/attrib_name"
android:textStyle="bold"/>
style="@style/PlanAttributeText"
android:id="@+id/attrib_value"
android:gravity="right"
android:textStyle="normal"/>