我正在尝试从Post类填充图像网址数组,但该活动返回一个空白页面。我做得对吗对不起我学习android不太了解。
ArrayList PostDetails = new ArrayList();
for (int index=0;index<imageUrls.length;index++){
imageUrls[index]=PostDetails.get(index).getImag();
}
答案 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的答案是正确的,但我想稍微扩展一下。假设loadingTask
是AsyncTask
,因此当您调用execute
时,doInBackground
中的代码将异步执行。您创建和填充数组的代码将与PostDetails
的填充并行执行,我假设它填充在loadingTask
中。由于阵列循环将非常快速地执行,因此在loadingTask
执行网络操作之前很久就会完成。因此,您的页面是空白的,因为您在填充PostDetails
之前已经遍历了数组。
解决方案与Nunu建议的一样,即将imageUrls
数组的种群移动到onPostExecute
的{{1}}方法中。此外,任何使用此数组的UI操作也应移至AsyncTask
。