CharSequence []:无法将元素添加到数组中

时间:2013-09-25 06:12:27

标签: java android

CharSequence[] mPhotoOptions = new CharSequence[10];
               mPhotoOptions = getResources().getStringArray(R.array.save_coupon_add_photo_options);

               if (!TextUtils.isEmpty( mItemList.mItemImagePath ) || !TextUtils.isEmpty( mResizedPhotoFilePath )  ) {
                   mPhotoOptions[2]= getResources().getString(R.string.remove_image);
               }

它提供了ArrayOutOfBoundException

1 个答案:

答案 0 :(得分:2)

你在第一行代码中声明并分配一个10 CharSequence的数组,但它在第二行代码中被一个未确定长度的数组替换,可能小于你期望的数组。

(回应OP后续行动)

要添加元素,您必须创建一个新数组并复制旧结果。那是你的Java。 (您可以使用ArrayList 而不是???)使用硬编码的数字作为大小和索引(您可能不应该这样做)

CharSequence[] newPhotoOptions = Arrays.copyOf(mPhotoOptions, 10);  // or old length +1
newPhotoOptions[2] = thatNewValue;  // or old length

(注意 - 某些旧版本的Android没有Arrays.copyOf(),所以你可能想要使用System.arraycopy()。)