package com.likebamboo.osa.android.ui.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; /** * ListView 适配器基类 * * @author wentaoli * @version [版本号, 2015年5月12日] * @see [相关类/方法] * @since [产品/模块版本] */ public abstract class BaseAdapter<T> extends android.widget.BaseAdapter { /** * 上下文对象 */ protected Context mContext = null; /** * 数据源 */ protected ArrayList<T> mDatas = new ArrayList<T>(); public BaseAdapter(final Context ctx) { super(); this.mContext = ctx; } public BaseAdapter(final Context ctx, final ArrayList<T> datas) { super(); this.mContext = ctx; this.mDatas = datas; } /** * 获取数据源 * * @return */ public ArrayList<T> getDatas() { return mDatas; } /** * 添加数据 * * @param datas */ public void addDatas(final ArrayList<T> datas) { if (mDatas == null) { mDatas = new ArrayList<T>(); } mDatas.addAll(datas); notifyDataSetChanged(); } /** * 添加数据 * * @param datas * @param index */ public void addDatas(final ArrayList<T> datas, int index) { if (mDatas == null) { mDatas = new ArrayList<T>(); } mDatas.addAll(index, datas); notifyDataSetChanged(); } /** * 添加数据 * * @param datas */ public void addData(T datas) { if (mDatas == null) { mDatas = new ArrayList<T>(); } mDatas.add(datas); } /** * 添加数据 * * @param datas * @param index */ public void addData(T datas, int index) { if (mDatas == null) { mDatas = new ArrayList<T>(); } mDatas.add(index, datas); } /** * 删除数据 * * @param datas */ public void removeDatas(final ArrayList<T> datas) { if (mDatas == null) { return; } mDatas.removeAll(datas); notifyDataSetChanged(); } /** * 删除数据 * * @param index */ public void removeData(int index) { if (mDatas == null || index >= mDatas.size()) { return; } mDatas.remove(index); } /** * 删除数据 * * @param data */ public void removeData(T data) { if (mDatas == null || data == null) { return; } mDatas.remove(data); } /** * 清空数据 */ public void clear() { if (mDatas != null) { mDatas.clear(); } notifyDataSetChanged(); } @Override public int getCount() { if (mDatas == null) { return 0; } int count = mDatas.size(); return count; } @Override public T getItem(int arg0) { if (mDatas == null) { return null; } if (arg0 < 0 || arg0 >= mDatas.size()) { return null; } return mDatas.get(arg0); } @Override public long getItemId(int arg0) { return arg0; } @Override public abstract View getView(int position, View v, ViewGroup parent); }