package com.martin.simpledevelop.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import java.util.List; /** * @Description 万能ListView适配器 * @File SaBaseAdapter.java * @Package com.martin.view.adapter * @Date 2015年6月23日下午9:02:55 * @Author Donghongyu 1358506549@qq.com * @Version v1.0.0 */ public abstract class SaBaseAdapter<T> extends BaseAdapter { protected Context mContext; protected List<T> mDatas; protected LayoutInflater mInflater; protected int mLyoutId; public SaBaseAdapter(Context context, List<T> dates, int lyoutId) { this.mContext = context; this.mDatas = dates; this.mLyoutId = lyoutId; mInflater = LayoutInflater.from(mContext); } /** * 向ListView数据列表的上面添加数据,需要T中重写equals方法 * * @param mDatas */ public void addRefreshDatas(List<T> mDatas) { for (int i = mDatas.size() - 1; i >= 0; i--) { T topic = mDatas.get(i); int index = this.mDatas.indexOf(topic); if (index == -1) { //添加到列表数据的第一位 this.mDatas.add(0, topic); } } } public void addAll(List<T> mDatas) { this.mDatas.addAll(mDatas); } public void setDatas(List<T> mDatas) { this.mDatas.clear(); this.mDatas.addAll(mDatas); } @Override public int getCount() { return mDatas.size(); } @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) { SaViewHolder holder = SaViewHolder.get(mContext, convertView, parent, mLyoutId, position); convert(holder, getItem(position)); return holder.getConvertView(); } public abstract void convert(SaViewHolder holder, T t); }