package com.seal.ui.adapter; import java.util.ArrayList; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import com.seal.model.IBaseModel; public abstract class ViewAdapter<T extends IBaseModel> extends BaseAdapter { private ArrayList<T> mDataList = new ArrayList<T>(); private OnClickListener mListener; public ViewAdapter() { } public ViewAdapter(OnClickListener listener) { mListener = listener; } public void add(ArrayList<T> list) { if (list == null) { return; } int size = mDataList.size(); while (!list.isEmpty()) { T t = list.remove(0); if (t == null) { continue; } mDataList.add(t); } if (mDataList.size() != size) { notifyDataSetChanged(); } } public boolean addOnly(T t) { if (t == null) { return false; } mDataList.add(t); return true; } public void set(ArrayList<T> list) { if (list == null) { mDataList.clear(); } else { mDataList = list; } notifyDataSetChanged(); } public void clear() { set(null); } @Override public int getCount() { return mDataList.size(); } @Override public T getItem(int position) { if (position < 0 || position >= mDataList.size()) { return null; } return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public boolean areAllItemsEnabled() { return false; } @Override public boolean isEnabled(int position) { return false; } public OnClickListener getOnClickListener() { return mListener; } public void setOnClickListener(OnClickListener listener) { mListener = listener; } public ArrayList<T> getDataList() { return mDataList; } }