1. Реализация BaseAdapter
Я думаю, что вам лучше всего расширить BaseAdapter и внедрить следующие методы:
getCount()
getItem(int)
getItemId(int)
getView(int, View, ViewGroup)
Это будет выглядеть примерно так:
public class MyAdapter extends BaseAdapter() {
private List<Map<Contact, Name>> map;
private Context context;
public MyAdapter(List<Map<Contact, Name>> map>, Context context) {
this.map = map;
this.context = context;
}
public int getCount() {
return map.size(); // or do you want one list item per name?
// if so, just count out all the map entries in each item of the list
}
public int getItemId(int position) {
return position; // doesn't matter too much...
}
public View getView(int position, View convertView, ViewGroup parent) {
// populate the view here...
// use LayoutInflater.from(context).inflate(resource, parent, false) to inflate new views
}
}
2. Будьте внимательны при использовании шаблона ViewHolder
При реализации getView () использование этого шаблона проектирования сэкономит МНОГО памяти:
http://www.screaming -penguin.com / узел / 7767