0

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

ArrayList PostDetails = new ArrayList();

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

2 回答 2

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();
   }
}
于 2012-11-16T13:25:47.540 回答
0

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

解决方案就像 Nunu 建议的那样,即将imageUrls数组的人口移动到onPostExecute您的AsyncTask. 此外,任何使用此数组的 UI 操作也应移至onPostExecute.

于 2012-11-16T13:40:33.047 回答