我有一個ListView,它包含一個ImageView和一個TextView。我是繼承ArrayAdapter,以便我可以通過一個子類AsyncTask從互聯網加載圖像。迄今爲止都很好。當我使用convertView時出現問題,當我沒有問題時
的問題是,如果我嘗試使用convertView,我有其中圖像簡單地回收進錯行了問題。 (這是一個公司的標誌,所以這是...不好。)
如果我不使用convertView,但是,圖像丟失的用戶滾動時。所以,如果他們向下滾動,備份,圖像從互聯網(數據使用這顯然是不好的,電池壽命等)
有一個簡單的辦法解決這一問題,以便它不會重新加載每次從互聯網加載,或移動圖像?
下面是我使用的是什麼至今:
public class SupplierAdapter extends ArrayAdapter<Supplier>{
int resource;
String response;
Context context;
public SupplierAdapter(Context context, int resource, List<Supplier> suppliers) {
super(context, resource, suppliers);
this.resource = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
LinearLayout view;
Supplier s = getItem(position);
if(convertView == null){
view = new LinearLayout(getContext());
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater vi;
vi = (LayoutInflater) getContext().getSystemService(inflater);
vi.inflate(resource, view, true);
} else {
view = (LinearLayout) convertView;
}
ImageView iv = (ImageView) view.findViewById(R.id.thumbnail);
// s.getThumbnail returns a URL
new DownloadImageTask(iv).execute(s.getThumbnail());
TextView titleText =(TextView) view.findViewById(R.id.titleText);
titleText.setText(s.getTitle());
titleText.setTag(s.getId());
return view;
}
}
所有幫助非常感謝:)
你有沒有考慮過使用SimpleAdapter和緩存? –
@丹,我沒有。如何緩存?保存到SD卡?我不確定那將如何工作。 –
如果您要處理的不是字符串數組,而是SimpleAdapter更好。對於緩存,您可以將其保存到SD中,並有一些標準來檢查更新。 –