我有一个表,该表的行数未知。我在XML中设置的第一行显示了下一行中每个项目的标题。
<TableLayout
android:id="@+id/table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dip">
<TableRow
android:id="@+id/tbheader"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/standard"
android:layout_weight="2.5"
android:layout_width="0dp"
android:text="STANDARD"
android:textColor="?attr/textcolor" />
<TextView
android:id="@+id/goal_grade"
android:layout_weight="1"
android:layout_width="0dp"
android:text="GOAL"
android:textColor="?attr/textcolor" />
<TextView
android:id="@+id/mock_grade"
android:layout_weight="1"
android:layout_width="0dp"
android:text="MOCK"
android:textColor="?attr/textcolor" />
<TextView
android:id="@+id/final_grade"
android:layout_width="0dp"
android:layout_weight="1"
android:text="FINAL"
android:textColor="?attr/textcolor" />
</TableRow>
</TableLayout>
然后我从Java填充其余的每一行,如下所示:
TableRow row=new TableRow(this);
TextView tvName=new TextView(this);
tvName.setText(""+name);
TextView tvGoal=new TextView(this);
tvGoal.setText(""+goal);
TextView tvMock=new TextView(this);
tvMock.setText(""+mock);
TextView tvFinal=new TextView(this);
tvFinal.setText(""+finalstr);
row.addView(tvName);
row.addView(tvGoal);
row.addView(tvMock);
row.addView(tvFinal);
table.addView(row);
我想要的是让这些新项目中的每一个在其行中的权重与第一行相同,但是我找不到任何如何以编程方式执行此操作的功能。我只想将第一个项目的layout_weight设置为2.5,将其他项目的权重设置为1,以便所有内容都与我在XML中定义的项目一致。我一直在努力使它工作数小时,这正在使我丧命,难道不是那么复杂吗?
如果有人可以帮助我,我会永远爱他们。