package com.pandocloud.freeiot.ui.base; 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 EasyBaseAdapter<T> extends BaseAdapter { protected List<T> mDataSet; protected final Context mContext; protected final LayoutInflater mInflater; public EasyBaseAdapter(Context context, List<T> dataset) { mDataSet = dataset; if (mDataSet == null) { mDataSet = new ArrayList<T>(); } mContext = context; mInflater = LayoutInflater.from(context); } /** * add adapter dataset item * @param t */ public void addItems(T t) { mDataSet.add(t); notifyDataSetChanged(); } /** * add all items * @param items */ public void addAll(List<T> items) { mDataSet.addAll(items); notifyDataSetChanged(); } public void addAtPosition(int position, List<T> items) { mDataSet.addAll(position, items); notifyDataSetChanged(); } public void removeAtPosition(int position) { if (position < 0 || position >= mDataSet.size()) { return; } mDataSet.remove(position); notifyDataSetChanged(); } public void removeAll(List<T> items) { mDataSet.removeAll(items); notifyDataSetChanged(); } /** * * @param datasets */ public void updateDataSet(List<T> datasets) { mDataSet = datasets; notifyDataSetChanged(); } /* * (non-Javadoc) * * @see android.widget.Adapter#getCount() */ @Override public int getCount() { return mDataSet == null ? 0 : mDataSet.size(); } /* * (non-Javadoc) * * @see android.widget.Adapter#getItem(int) */ @Override public Object getItem(int position) { return mDataSet.get(position); } /* * (non-Javadoc) * * @see android.widget.Adapter#getItemId(int) */ @Override public long getItemId(int position) { return position; } /* * (non-Javadoc) * * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup) */ @Override public abstract View getView(int position, View convertView, ViewGroup parent); }