2014-04-07 39 views
0

這是我的代碼,我有100個圖像,我想使用循環動態創建它,但它不工作。如何在整數數組中動態設置圖像ID

int[] imgIds = {R.drawable.img1, R.drawable.img2, R.drawable.img3}; 
+0

什麼是你所面臨的問題?什麼不起作用?你的問題說明了一個循環,但是你發佈的代碼段沒有循環 – Antrromet

+0

你面臨什麼問題?也分享你已經試過的代碼 –

+0

我只是問如何動態創建它。這只是簡單的,我不想在數組中寫入100個圖像名稱。 – SourabhTech

回答

1

嘗試使用getResources().getIdentifier如果繪項目名稱是IMG1,IMG2,IMG3,創建繪製的ID陣列..

int[] imgIds = new int [100]; 
int imagecount=1; 
for(int i=0;i<100;i++){ 
imgIds[i]=getResources().getIdentifier("img"+imagecount, 
              "drawable", getPackageName()); 
imagecount++; 
} 
1

如果您的圖像都被稱爲具有相同前綴,它確實發生了改變的唯一事情是你可以做以下的事情數:

假設你從0編號到size -1

ArrayList<Integer> imgIds = new ArrayList<Integer>(); 
for (int i = 0; i < size; i++) { 
    imgIds.add(getResources().getIdentifier("img"+i, "drawable", getPackageName()); 
} 

檢查輸入錯誤。 編輯。隨着陣列:

int[] imgIds = new int[size]; 
for (int i = 0; i < size; i++) { 
    imgIds[i] = getResources().getIdentifier("img"+i, "drawable", getPackageName(); 
} 
+0

我想要使用數組而不是數組列表來實現它。 – SourabhTech

+0

當我試圖把你的代碼,但它給出錯誤「空指針」 public class ImageAdapter extends BaseAdapter { \t \t int mGalleryItemBackground; \t \t private Context mContext; ArrayList mImageIds = new ArrayList (); \t對(INT I = 0; I <大小;我++){mImageIds.add(getResources()則getIdentifier( 「IMG」 + 1, 「可拉伸」,getPackageName()); \t \t} } – SourabhTech

+0

其中做你得到NPE?發佈堆棧跟蹤 – Blackbelt

相關問題