5

TableLayout を動的に構築しています。そして、TableRow には特定の列位置にギャップがある必要があります。

たとえば、行には ImageView が 3 と 5 の位置にあり、次の行には ImageView が 1、2、4 の位置にある必要があります。私は使用しようとします:

   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

任意の提案をいただければ幸いです。
ありがとうございました。

4

1 に答える 1

4

実際、コードを見ると、エラーは非常に論理的に見えます。テーブルがxmlから作成され、必要な行数として作成されていない限り、インデックス2にビューを追加すると、このインデックスは存在しません。この2を0に置き換えてみてください。これで、機能することがわかります。したがって、自分のインデックスに固執したい場合は、空のImageViewを他のインデックスに追加する必要があります。

于 2010-07-27T15:47:45.410 に答える