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
答案 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()。)