在指定的索引处向ArrayList添加按钮

时间:2013-11-29 10:14:51

标签: java android arraylist

我正在尝试向ArrayList添加一个按钮,但是当我指定索引时,会出现错误,指出索引超出范围。

我像这样启动数组:

ArrayList<Button> buttons = new ArrayList<Button>();

我有一个Integer变量“order”,表示按钮的优先级。当按钮优先级为0时,该按钮应该是数组中的第一个值。

例外情况出现在以下声明中:

buttons.add(order,btn);

编辑:

order的值大于ArrayList的大小。我正在动态创建按钮。我怎样才能指定数组的大小?

4 个答案:

答案 0 :(得分:1)

检查文档中的ArrayList add方法.....它告诉可能是什么原因......

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#add(int,E)

订单的价值可能超过ArrayList的大小。在将订单添加到列表之前打印订单值将有助于...

答案 1 :(得分:1)

如果索引大于add的大小,则不能ArrayList给定索引处的元素。我想文件清楚地说明了这一点。

答案 2 :(得分:1)

.add(int index, E object)方法会在以下情况下抛出IndexOutOfBoundsExceptionindex < 0 || index > size()

在调用方法之前检查订单变量的值。

答案 3 :(得分:0)

如果您已经知道阵列的最终大小,我建议您在创建阵列时设置容量 像这样:&#34; ArrayList buttons = new ArrayList(25);&#34; 25是你的数组的元素数,从0到索引24,到qvoid索引越界错误我也建议你填充你的数组,然后你在指定索引处写button.add(index,element)已经是一个元素它将要做的是将现有元素移动到下一个位置(如果元素的索引是0,添加后将是1),而应该尝试使用这种方式预先存在的buttons.set(index,element)元素将替换为您要添加的元素