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

最佳答案

您在第一行代码中声明并分配了一个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()。)

关于java - CharSequence []:无法将元素添加到数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18997479/

10-13 04:30