2013-07-15 87 views
0

我有一個問題需要將一個int數組傳遞給一個擴展AsyncTask的類。將int []傳遞給AsyncTask

int數組由位圖圖像的resourceId組成。

final int[] resIdImage = resId_image; 

,我通過發送此向量:

execute(resIdImage); 

和延伸的AsyncTask

static class BitmapWorkerTask extends AsyncTask <int[], Void, Bitmap[]> 
    private int[] data = new int[9]; 

並通過PARAMS

@Override 
protected Bitmap[] doInBackground(int[] ... params) { 

for (int i = 0; i < data.length; i++) { 
    data[i] = params[i]; 
} 
臨危這些resourceIds的doInBackground類0

但我得到了以下錯誤的int doInBackGround法:

類型missmatch:不能從int []轉換爲int

什麼是錯我的代碼?

在此先感謝!

+0

爲什麼使用靜態類? –

+0

data [i] = params [i]; <--- does not像那樣 – bofredo

+0

擴展AsyncTask的類是一個靜態的內部類。爲了避免內存泄漏,它必須是靜態的。 –

回答

3

params[0]這裏指的int[]。所以你可以做到以下幾點。

@Override 
protected Bitmap[] doInBackground(int[] ... params) { 

int[] data=params[0]; 
+0

我傾向於同意這個答案。儘管如此,我想在upvoting之前更多地瞭解這個'data'變量。 – njzk2

+0

它是一個int數組。與'resIdImage'類型完全相同,並且引用了'resIdImage'引用的相同內存位置。 – Dulanga

1

拔出你需要做的

int[] data = params[0]; 

數組那麼你可以做你的循環

相關問題