通过委托模式(Delegation Pattern)可以帮助我们把所有业务逻辑从Adapter中移动到Activity。
我们创建一个sample,通过该project可以向列表中添加电话号码,列表中每一行都有一个remove按钮,用于删除电话号码。
思路:在适配器中实现“remove”按钮的点击处理,但是并不在适配器中实现删除对象的方法。我们通过一个委托接口调用Activity的方法删除对象。
public class NumberAdapter extends ArrayAdapter<Integer>{
public static final NumberAdapterDelegate{
void removeItem(Integer value);
}
private LayoutInflater mInflater;
private NumberAdapterDelegate mDelegate;
public NumberAdapter(Context context,List<Integer> objects){
super(context,