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