Ответ 1
Я бы рекомендовал вам продлить org.droidparts.adapter.widget.ArrayAdapter
, который уже содержит экземпляр LayoutInflater
.
Если вы это сделаете, здесь код, логика должна быть легко следовать:
public class MyArrayAdapter extends ArrayAdapter<MyModel> {
private final ImageFetcher imageFetcher;
public MyArrayAdapter(Context ctx, List<MyModel> list) {
super(ctx, list);
imageFetcher = new ImageFetcher(ctx);
}
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
view = layoutInflater.inflate(m_resourceId, null);
ViewHolder holder = new ViewHolder();
holder.titleView = ViewUtils.findViewById(view, R.id.title);
holder.iconView = ViewUtils.findViewById(view, R.id.image);
view.setTag(holder);
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.iconView.setImageDrawable(null);
MyModel item = getItem(position);
holder.titleView.setText(item.title);
imageFetcher.attachImage(item.iconUrl, holder.iconView);
return view;
}
private static class ViewHolder {
TextView titleView;
ImageView iconView;
}
}
Также проверьте метод setContent(...)
как альтернативу предоставлению списка объектов в конструкторе.
И, конечно же, убедитесь, что вы объявили <uses-permission android:name="android.permission.INTERNET" />
.