2012-11-16 86 views
0

我試圖從Post類中填充圖像URL的數組,但活動返回空白頁。我做對了嗎?對不起,我正在學習android不太瞭解。使用for循環將數據加載到數組中android

ArrayList PostDetails = new ArrayList();

for (int index=0;index<imageUrls.length;index++){ 
     imageUrls[index]=PostDetails.get(index).getImag(); 
    } 

回答

3

你應該等到任務完成後,你可以把最後部分onPostExecute方法..

protected void onPostExecute() { 
    String[]imageUrls= new String[PostDetails.size()]; 

    for (int index=0;index<imageUrls.length;index++){ 
     imageUrls[index]=PostDetails.get(index).getImag(); 
    } 
} 
0

通過努努的答案是正確的,但我想給它一個擴大小。假設loadingTaskAsyncTask,因此當您撥打execute時,doInBackground內的代碼將異步執行。您創建並填充陣列的代碼將與您的人口PostDetails並行執行,我假設其填充在loadingTask內。由於數組循環將非常快速地執行,因此在通過loadingTask執行網絡操作之前​​它已經完成。因此,您的頁面是空白的,因爲在填充了PostDetails之前,您已通過陣列循環。

解決方案與Nunu建議的一樣,即將imageUrls陣列的人口遷移到AsyncTaskonPostExecute方法中。此外,使用此數組的任何UI操作也應移至onPostExecute

相關問題