2013-09-25 24 views
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的CharSequence []:廣東話添加元素陣列

回答

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

+2

它沒有分配10個字符 - 它分配了一個10個CharSequence元素的數組。那些不是字符。 –

+0

謝謝,更正。 – user949300

+0

「R.array.save_coupon_add_photo_options」是指具有2個元素的字符串數組。..「mPhotoOptions」(CharSequence [])的長度固定爲2 ..如何添加第三個元素..上面的代碼給出Exception。 –