自定义一个类继承自BaseAdapter,将一些Adapter中相同的方法封装到自定义类中,在写Adapter的时候直接继承自这个自定义类
public abstract classMyBaseAdapter<T> extends BaseAdapter {
protectedContext context;
protectedLayoutInflater inflater;
protectedArrayList<T> myList=new ArrayList<T>();
publicMyBaseAdapter(Context context){
this.context=context;
this.inflater=LayoutInflater.from(context);
}
//封装加数据的方法--1条 多条
publicvoid appendData(T t,boolean isClearOld){
if(t==null)
return;
if(isClearOld)
myList.clear();
myList.add(t);
}
publicvoid appendData(ArrayList<T> data,boolean isClearOld){
if(data==null)
return;
if(isClearOld)
myList.clear();
myList.addAll(data);
}
//封装加数据的方法--1条 多条 在顶部添加
publicvoid appendDataTop(T t,boolean isClearOld){
if(t==null)
return;
if(isClearOld)
myList.clear();
myList.add(0,t);
}
publicvoid appendDataTop(ArrayList<T> data,boolean isClearOld){
if(data==null)
return;
if(isClearOld)
myList.clear();
myList.addAll(0,data);
}
publicvoid update(){
this.notifyDataSetChanged();
}
publicvoid clear(){
myList.clear();
}
publicint getCount() {
if(myList==null)
return0;
returnmyList.size();
}
publicT getItem(int position) {
if(myList==null)
returnnull;
if(position>myList.size()-1)
returnnull;
returnmyList.get(position);
}
publiclong getItemId(int position) {
returnposition;
}
publicView getView(int position, View convertView, ViewGroup parent) {
returngetMyView(position, convertView, parent);
}
publicabstract View getMyView(int position, View convertView, ViewGroup parent);
}