package com.applite.usingbaseadapter; import java.util.ArrayList; import java.util.List; import android.R.integer; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; public abstract class MyListAdapter<T> extends BaseAdapter { private Context context; private int listCellId=0; public MyListAdapter(Context context,int resourceId) { this.context = context; this.listCellId = resourceId; } public Context getContext() { return context; } private List<T> list =new ArrayList<T>(); public void Add(T item) { list.add(item); //通知ui组件刷新 notifyDataSetChanged(); } public void removeLast() { list.remove(getCount()-1); notifyDataSetChanged(); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public T getItem(int position) { // TODO Auto-generated method stub return list.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null) { //创建 convertView=LayoutInflater.from(getContext()).inflate(listCellId, null); } //列表项的初始化过程抽象方法 交给调用者去具体实现 initListCell(position,convertView,parent); return convertView; } protected abstract void initListCell(int position,View listCell,ViewGroup parent); }