#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, если в вашем представлении списка много элементов списка.