我正在尝试从 Post 类填充图像 url 数组,但活动返回一个空白页面。 我做得对吗。 对不起,我正在学习安卓,知道的不多。
ArrayListPostDetails = 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
数组的填充移动到AsyncTask
的onPostExecute
方法中。 此外,使用此数组的任何 UI 操作也应移动到 onPostExecute
中。