package cn.daixiaodong.myapp.adapter.common; import android.content.Context; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; /** * Created by daixiaodong on 15/7/9. */ public class CommonViewHolder { private View mConvertView; private int mPosition; private SparseArray<View> mViews; private Context mContext; public CommonViewHolder(Context context, int position, ViewGroup parent, int resId) { this.mPosition = position; mViews = new SparseArray<>(); this.mContext = context; mConvertView = LayoutInflater.from(context).inflate(resId, parent, false); mConvertView.setTag(this); } public static CommonViewHolder get(Context context, int position, View convertView, ViewGroup parent, int resId) { if (convertView == null) { return new CommonViewHolder(context,position,parent,resId); }else{ CommonViewHolder viewHolder = (CommonViewHolder)convertView.getTag(); viewHolder.mPosition = position; return viewHolder; } } public View getConvertView() { return mConvertView; } public <T extends View> T getView(int resId){ View view = mViews.get(resId); if(view == null){ view = mConvertView.findViewById(resId); mViews.put(resId,view); } return (T)view; } public CommonViewHolder setText(int resId, String text){ TextView tv = getView(resId); tv.setText(text); return this; } public void setImageUrl(int resId, String imgUrl) { ImageView iv = getView(resId); // Picasso.with(mContext).load(imgUrl).resize(250,250).into(iv); } }