@@ -0,0 +1,1131 @@
+package com.novoda.notils;%0A%0Aimport android.view.View;%0Aimport android.view.ViewGroup;%0Aimport android.widget.BaseAdapter;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0A%0Apublic abstract class ListAdapter%3CT%3E extends BaseAdapter %7B%0A%0A    private final List%3CT%3E elements = new ArrayList%3CT%3E();%0A%0A    @Override%0A    public int getCount() %7B%0A        return elements.size();%0A    %7D%0A%0A    @Override%0A    public T getItem(int position) %7B%0A        return elements.get(position);%0A    %7D%0A%0A    @Override%0A    public long getItemId(int position) %7B%0A        return position;%0A    %7D%0A%0A    @Override%0A    public abstract View getView(int position, View convertView, ViewGroup parent);%0A%0A    public List%3CT%3E getElements() %7B%0A        return new ArrayList%3CT%3E(elements);%0A    %7D%0A%0A    public void setElements(List%3CT%3E elements) %7B%0A        this.elements.clear();%0A        this.elements.addAll(elements);%0A        notifyDataSetChanged();%0A    %7D%0A%0A    public void clearElements() %7B%0A        this.elements.clear();%0A        notifyDataSetChanged();%0A    %7D%0A%0A    public void addElements(List%3CT%3E elements) %7B%0A        this.elements.addAll(elements);%0A        notifyDataSetChanged();%0A    %7D%0A%7D%0A

Add a real typed ListAdapter as a standard base class