使用for循环android将数据加载到数组中

时间:2012-11-16 13:23:31

标签: android arrays for-loop image-caching

我正在尝试从Post类填充图像网址数组,但该活动返回一个空白页面。我做得对吗对不起我学习android不太了解。

ArrayList PostDetails = new ArrayList();

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

2 个答案:

答案 0 :(得分: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();
   }
}

答案 1 :(得分:0)

Nunu的答案是正确的,但我想稍微扩展一下。假设loadingTaskAsyncTask,因此当您调用execute时,doInBackground中的代码将异步执行。您创建和填充数组的代码将与PostDetails的填充并行执行,我假设它填充在loadingTask中。由于阵列循环将非常快速地执行,因此在loadingTask执行网络操作之前​​很久就会完成。因此,您的页面是空白的,因为您在填充PostDetails之前已经遍历了数组。

解决方案与Nunu建议的一样,即将imageUrls数组的种群移动到onPostExecute的{​​{1}}方法中。此外,任何使用此数组的UI操作也应移至AsyncTask