我有一個列表視圖的圖像。異步任務完成後更新列表視圖Android
如果本地緩存中不存在圖像,則佔位符圖像將保留在圖像的位置。
然後運行一個異步任務從服務器下載圖像。
異步任務完成後,我將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()
}
這樣被保存在緩存做工精細任何圖像。
任何必須首先下載的圖像都不會正確更新,除非您向下滾動並再次備份。
什麼問題?
我建議你使用凌空或畢加索圖書館來加載圖像。 –
你需要做以下 //清除現有項目 'listAdapter.clear();' //添加新項目 'listAdapter.addAll(updatedvalues);' //通知,該數據已經改變 ' listAdapter.notifyDataSetChanged();' –