У меня есть вид списка изображений.Обновление списка просмотра после завершения задачи Async Android
Если в локальном кеше не существует изображения, то вместо него изображение-заполнитель останется на месте.
Затем выполняется асинхронная задача для загрузки изображения с сервера.
После завершения задачи async я установил растровое изображение imageView в загруженное изображение. Затем я звоню notifyDataSetChanged()
Проблема в том, что мне нужно прокрутить вниз и прокрутить резервную копию для каждой ячейки, чтобы показать загруженное новое изображение. Он не обновляет ячейки автоматически.
Так у меня есть:
public class ImageLoadTask extends AsyncTask<Void, Void, Bitmap> {
private ImageView imageView;
public ImageLoadTask(ImageView imageView) {
this.imageView = imageView;
}
@Override
protected Bitmap doInBackground(Void... params) {
// download image from server and return
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
imageView.setImageBitmap(result)
notifyDataSetChanged()
}
}
и в моем методе GetView() у меня есть:
if(image exists in cache){
myImageView.setBitmap(image in Cache);
}else{
new ImageLoadTask(myImageView).execute()
}
Так любые изображения, которые были сохранены в кэше, работают нормально.
Любые изображения, которые должны быть загружены сначала, не будут корректно обновляться, если вы не прокрутите вниз и не вернетесь снова.
В чем проблема?
Я предлагаю вам использовать библиотеку volley или Picasso для загрузки изображений. –
вам нужно сделать следующие // Очищаем существующие элементы 'listAdapter.clear();' // Добавление новых элементов 'listAdapter.addAll (updatedvalues);' // Уведомить о том, что данные изменились ' listAdapter.notifyDataSetChanged(); ' –