Android TableRow - 如何动态地将View添加到某个位置?

时间:2010-07-27 15:24:47

标签: android tablelayout tablerow

我正在动态构建TableLayout。而且我需要TableRow在某些列位置有一个缺口。

例如,我需要在3和5位置上有行ImageView,下一行在1,2,4位置有ImageView。我尝试使用:

   TableRow row1 = new TableRow(this);  
   row1.addView(new ImageView(this), 2);  
   row1.addView(new ImageView(this), 4);  
   mTable.addView(row1);
   TableRow row2 = new TableRow(this);  
   row2.addView(new ImageView(this), 0);  
   row2.addView(new ImageView(this), 1);  
   row2.addView(new ImageView(this), 3);
   mTable.addView(row2);

但是我在运行时得到了IndexOfBoundException ERROR / AndroidRuntime(771):引起:java.lang.IndexOutOfBoundsException:index = 2 count = 0

任何建议都将不胜感激 谢谢。

1 个答案:

答案 0 :(得分:4)

实际上,乍一看你的代码错误似乎很合乎逻辑。除非您是从xml创建的表并且是所需的行数,否则在索引2处添加视图时,此索引不存在。尝试将此2替换为0,您将看到它有效。因此,如果你想坚持使用其他索引,你只需要添加空ImageView。