0
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

4

1 回答 1

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() 代替。)

于 2013-09-25T06:16:10.030 回答