Невозможно установить изображение в ImageView из ListView с помощью SimpleAdapter, ViewBinder и Asynctask

#android #android-listview #android-asynctask #android-imageview #android-viewbinder

#Android #android-listview #android-asynctask #android-imageview #android-viewbinder

Вопрос:

У меня проблема. Я пытаюсь получить изображение из онлайн-источника и установить изображение в ListView ‘s ImageView . Однако я не могу этого сделать, потому что я не могу связать свое ImageView внутри ListView , поскольку оно возвращает NullPointerException . Я понимаю, что мне нужно использовать VieWBinder для установки изображения в ImageView внутри ListView .
В настоящее время я использую ImageLoader класс из here, а также ViewBinder класс из here.
Это мой класс ViewBinder:

 SearchResults sr = new SearchResults();
ImageDownloader imageDownloader = new ImageDownloader();

@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
    if (view instanceof ImageView amp;amp; data instanceof Bitmap) {
    // TODO Auto-generated method stub
        for (int i = 0; i < sr.listData.size(); i  ) {
            String imageISBN = sr.listData.get(i).get("coverImage");
            ImageView iv = (ImageView) view;
            Bitmap bm = (Bitmap) data;
            imageDownloader.download(imageISBN,iv);
            //iv.setImageBitmap(bm);
            return true;
        }
    }
    return false;
}
  

SearchResults это класс, из которого я получил listData, который содержит такие данные, как URL-адрес изображений. Как я могу использовать ImageLoader класс для вставки загруженного изображения в ImageView внутри ListView с помощью ViewBinder ?

* Примечание сбоку: это выдало бы мне сообщение об ошибке «05-12 13: 16:37.195: INFO / System.out (736): сбой resolveUri из-за неверного растрового uri:http://lib.syndetics.com/index.aspx?isbn=9780137081851/SC.GIFamp;client=tpolyamp;type=xw12 «также *

Ответ №1:

Установите тег для просмотра изображения, например, URL изображения. И в вашем onPostExecute извлеките изображение из списка view.findViewByTag. Я не согласен использовать asynctask для выборки изображений, поскольку было бы много asynctask, если в вашем представлении списка много элементов списка.