【问题标题】:Showing Dynamic Data(Images, Description) with List View of Universal Image Loader使用通用图像加载器的列表视图显示动态数据(图像、描述)
【发布时间】:2013-12-31 16:52:06
【问题描述】:

我想要实现的是一个列表视图,其中包含与每个项目相关的图像和一些描述性文本。图像 URL 和文本都是从网络动态获取的(Json 响应)。 实现通用图像加载器是可能的解决方案。这就是我正在做的事情。

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

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

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

问题: 在 getView() 方法中,在使用填充的数组之前,我需要确保异步任务已完成。我该怎么做。 我可以使用异步任务类的 getStatus() 方法,但它会阻塞 UI 线程。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    所以,举个例子:

     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);
            }
        }
    

    【讨论】:

    • 谢谢@Henrique..看起来它会工作......我会尝试然后接受你的回答。Thx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2013-07-14
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多