package com.jmheart.adapter; import com.jmheart.adapter.ImageLoader.Type; import com.jmheart.base.BaseActivity; import com.jmheart.base.BaseApplication; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Paint; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; public class ViewHolder { private final SparseArray<View> mViews; private int mPosition; private View mConvertView; private ViewHolder(Context context, ViewGroup parent, int layoutId, int position) { this.mPosition = position; this.mViews = new SparseArray<View>(); mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false); // setTag mConvertView.setTag(this); } /** * �õ�һ��ViewHolder���� * * @param context * @param convertView * @param parent * @param layoutId * @param position * @return */ public static ViewHolder get(Context context, View convertView, ViewGroup parent, int layoutId, int position) { if (convertView == null) { return new ViewHolder(context, parent, layoutId, position); } return (ViewHolder) convertView.getTag(); } public View getConvertView() { return mConvertView; } /** * ͨ���ؼ���Id��ȡ���ڵĿؼ������û�������views * * @param viewId * @return */ public <T extends View> T getView(int viewId) { View view = mViews.get(viewId); if (view == null) { view = mConvertView.findViewById(viewId); mViews.put(viewId, view); } return (T) view; } /** * ΪTextView�����ַ��� * * @param viewId * @param text * @return */ public ViewHolder setCheckText(int viewId, String text) { CheckBox view = getView(viewId); view.setText(text); return this; } /** * ΪTextView�����ַ��� * @param viewId * @param text * @return */ public ViewHolder setText(int viewId, String text) { TextView view = getView(viewId); view.setText(text); return this; } /** * ΪTextView����ɾ�����ַ��� * * @param viewId * @param text * @return */ public ViewHolder setDelText(int viewId, String text) { TextView view = getView(viewId); view.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); view.setText(text); return this; } /** * ΪImageView����ͼƬ * * @param viewId * @param drawableId * @return */ public ViewHolder setImageResource(int viewId, int drawableId) { ImageView view = getView(viewId); view.setImageResource(drawableId); return this; } /** * ΪImageView����ͼƬ * * @param viewId * @param drawableId * @return */ public ViewHolder setImageBitmap(int viewId, Bitmap bm) { ImageView view = getView(viewId); view.setImageBitmap(bm); return this; } /** * ΪImageView��������ͼƬ * * @param viewId * @param drawableId * @return */ public ViewHolder setImageChecUrl(int viewId, String url) { ImageView view = getView(viewId); BaseApplication.imageLoader.displayImage(url, view, BaseApplication.options, null); return this; } /** * ΪImageView����ͼƬ * * @param viewId * @param drawableId * @return */ public ViewHolder setImageByUrl(int viewId, String url) { ImageLoader.getInstance(3, Type.LIFO).loadImage(url,(ImageView) getView(viewId)); return this; } public int getPosition() { return mPosition; } }