伙计我有一个XML
文件包含TableLayout
,如下所示:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp" >
<TableLayout
android:id="@+id/resulttable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="3" >
</TableLayout>
</ScrollView>
这是另一个名为row.xml的布局,如下所示
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tr"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_discription"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:id="@+id/tv_left_vehicle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:id="@+id/tv_right_vehicle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</TableRow>
在上面的表中我想显示字符串的数组列表,为此我已经完成了以下代码:
TableLayout table = (TableLayout) findViewById(R.id.resulttable);
for(int i=0;i<DArray.size();i++)
{
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
TableRow row = (TableRow) inflater.inflate(R.layout.row, table, false);
String discription = DArray.get(i);
String leftVehicle = LArray.get(i);
String rightVehicle = RArray.get(i);
TextView tvD = (TextView)row.findViewById(R.id.tv_discription);
tvD.setText(discription);
TextView tvlPrice = (TextView)row.findViewById(R.id.tv_left_vehicle);
tvlPrice.setText(leftVehicle);
TextView tvrPrice = (TextView)row.findViewById(R.id.tv_right_vehicle);
tvrPrice.setText(rightVehicle);
row.addView(tvD);
row.addView(tvlPrice);
row.addView(tvrPrice);
table.addView(row);
}
但此代码产生异常。这是我的代码的LogCat错误。
E/AndroidRuntime(1897): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
我是这种情况的初学者,请帮我找出问题所在。
更多细节我想制作一个这样的表:
答案 0 :(得分:0)
好的第二个潜在问题也是:table.addView(row);
rowgets添加了每个循环迭代,但它是相同的视图。您只能将一次视图添加到层次结构中。您可能希望每个循环迭代都有一个新实例。我不能肯定地说,但这可能是问题所在。或尝试在viewgroup中添加索引位置,如table.addView(row,index);