package com.androidex.adapter; import android.content.Context; import android.graphics.Bitmap; import android.util.SparseArray; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.androidex.R; /** * 通用 ViewHolder * * @author Tom */ public class ExLvViewHolder { private SparseArray<View> mViews; private View mConverView; public ExLvViewHolder(View rootView) { this.mConverView = rootView; this.mViews = (SparseArray<View>) mConverView.getTag(R.id.tag_SparseArray); if (mViews == null) { mViews = new SparseArray<>(); mConverView.setTag(R.id.tag_SparseArray, mViews); } } public static ExLvViewHolder getInstance(View view) { ExLvViewHolder instance = (ExLvViewHolder) view.getTag(R.id.tag_viewHolder); if (instance == null) { instance = new ExLvViewHolder(view); view.setTag(R.id.tag_viewHolder, instance); } return instance; } /** * 根据viewId获取控件对象 * * @param viewId * @param <T> * @return */ public <T extends View> T getView(int viewId) { View view = mViews.get(viewId); if (view == null) { view = mConverView.findViewById(viewId); mViews.put(viewId, view); } return (T) view; } public View getConverView() { return mConverView; } protected Context getContext() { return mConverView.getContext(); } /** * ===================================以下设置常用控件赋值======================= */ public ExLvViewHolder setText(int viewId, String txt) { TextView tv = getView(viewId); tv.setText(txt); return this; } public ExLvViewHolder setImageResource(int viewId, int resId) { ImageView imageViewv = getView(viewId); imageViewv.setImageResource(resId); return this; } public ExLvViewHolder setImageBitmap(int viewId, Bitmap bitmap) { ImageView imageViewv = getView(viewId); imageViewv.setImageBitmap(bitmap); return this; } }