A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© heshiwei 高级黑马   /  2015-9-22 10:44  /  334 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

万能适配器,支持自由扩展。用得好,可以将200行代码缩减为20行。好东西大家一起用。

  1. /**
  2. * Adapter万能适配器
  3. *
  4. * @param <T> 实体对象
  5. */
  6. public abstract class CommonAdapter<T> extends BaseAdapter{

  7.         protected List<T> mDatas;
  8.         protected Context mContext;
  9.         protected LayoutInflater mInflater;
  10.         protected int mLayoutId;
  11.        
  12.         public List<T> getDatas() {
  13.                 return mDatas;
  14.         }
  15.        
  16.         public void setDatas(List<T> list){
  17.                 this.mDatas = list;
  18.         }

  19.         protected CommonAdapter(Context context, List<T> list, int layoutId){
  20.                 mDatas = list;
  21.                 mContext = context;
  22.                 mInflater = LayoutInflater.from(context);
  23.                 mLayoutId = layoutId;
  24.         }
  25.        
  26.         @Override
  27.         public int getCount() {
  28.                 return mDatas.size();
  29.         }

  30.         @Override
  31.         public T getItem(int position) {
  32.                 return mDatas.get(position);
  33.         }

  34.         @Override
  35.         public long getItemId(int position) {
  36.                 return position;
  37.         }

  38.         protected abstract void setHolder(ViewHolder holder, T bean);
  39.        
  40.         @Override
  41.         public View getView(int position, View convertView, ViewGroup parent){
  42.                 ViewHolder holder = ViewHolder.get(mContext, convertView, position, parent, mLayoutId);
  43.                
  44.                 setHolder(holder, mDatas.get(position));
  45.                
  46.                 return holder.getConvertView();
  47.         }
  48. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马