package com.mcxtzhang.commonadapter.lvgv; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import java.util.ArrayList; import java.util.List; /** * 通用ListView/GridView Adapter * Created by zhangxutong . * Date: 16/03/11 */ public abstract class CommonAdapter<T> extends BaseAdapter { protected Context mContext; protected List<T> mDatas; protected LayoutInflater mInflater; private int layoutId; public CommonAdapter(Context context, List<T> datas, int layoutId) { this.mContext = context; mInflater = LayoutInflater.from(context); this.mDatas = datas; this.layoutId = layoutId; } @Override public int getCount() { return mDatas != null ? mDatas.size() : 0; } @Override public T getItem(int position) { return mDatas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = ViewHolder.get(mContext, convertView, parent, layoutId, position); convert(holder, getItem(position), position); return holder.getConvertView(); } public abstract void convert(ViewHolder holder, T t, int position); /** * 刷新数据,初始化数据 * * @param list */ public void setDatas(List<T> list) { if (this.mDatas != null) { if (null != list) { List<T> temp = new ArrayList<>(); temp.addAll(list); this.mDatas.clear(); this.mDatas.addAll(temp); } else { this.mDatas.clear(); } } else { this.mDatas = list; } notifyDataSetChanged(); } /** * 删除数据 * * @param i */ public void remove(int i) { if (null != mDatas && mDatas.size() > i && i > -1) { mDatas.remove(i); notifyDataSetChanged(); } } /** * 加载更多数据 * * @param list */ public void addDatas(List<T> list) { if (null != list) { List<T> temp = new ArrayList<>(); temp.addAll(list); if (this.mDatas != null) { this.mDatas.addAll(temp); } else { this.mDatas = temp; } notifyDataSetChanged(); } } public List<T> getDatas() { return mDatas; } }