使用通用图像加载器的列表视图显示动态数据(图像,描述)

时间:2013-12-31 16:52:07

标签: android android-asynctask universal-image-loader

我想要实现的是列表视图,其中填充了图像和与每个项目相关联的一些描述性文本。图像URL,文本都是从web-(Json响应)动态获取的。 实现Universal Image Loader是可能的解决方案。这就是我正在做的事情。

  1. 在onCreate()方法中将适配器设置为listview之前,启动一个新的Asyn任务以从web获取数据(图像URL,文本),然后将结果存储在相应的数组中.imageUrls& descTexts。

  2. 在异步调用之后,立即将适配器设置为列表视图。

  3. 在Adapter的getView()方法中,我使用这些imageUrls和descTexts数组来填充列表视图。

  4. getView()方法中的

    问题:,在使用填充的数组之前,我需要确保异步任务已经完成。如何执行此操作。 我可以使用异步任务类的getStatus()方法,但它会阻止UI线程。

    这个问题的任何解决方案。或者我这样做是错误的。

1 个答案:

答案 0 :(得分:0)

查看onPostExecute()http://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute%28Result%29)的AsyncTask方法。

只需将代码设置为此方法中的适配器,该方法在异步删除完成后立即运行。

所以,举个例子:

 class MyAsyncTask extends AsyncTask<String, Void, Void>{

        @Override
        protected void onPreExecute() {
        }

        @Override
        protected Void doInBackground(String... params) {
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // create you adapter here and set it to the ListView
            Adapter myAdapter = ...
            myListView.setAdapter(myAdapter);
        }
    }