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



我正在尝试从 Post 类填充图像 url 数组,但活动返回一个空白页面。 我做得对吗。 对不起,我正在学习安卓,知道的不多。

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数组的填充移动到AsyncTaskonPostExecute方法中。 此外,使用此数组的任何 UI 操作也应移动到 onPostExecute 中。

最新更新