Android-打造万能适配器
2015-05-11 18:13
411 查看
CommonAdapter复用多数重复的代码
万能的ViewHolder
[code]package com.core.common.adapter; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; /** * base adapter * * @author river * * @param <T> */ public abstract class CommonAdapter<T> extends BaseAdapter { protected LayoutInflater mInflater; protected List<T> mList; protected Context context; public CommonAdapter(Context context, List<T> list) { this.mInflater = LayoutInflater.from(context); this.mList = list; this.context = context; } @Override public int getCount() { return mList.size(); } @Override public T getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public abstract View getView(int position, View convertView, ViewGroup parent); }
万能的ViewHolder
[code]package com.core.common.adapter; import android.content.Context; import android.graphics.Bitmap; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; /** * 通用的ViewHolder * * @author river * */ public class ViewHolder { private SparseArray<View> mViews; private View mConvertView; private ViewHolder(Context context, ViewGroup parent, int layoutId) { this.mViews = new SparseArray<View>(); this.mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false); this.mConvertView.setTag(this); } public static ViewHolder get(Context context, View convertView, ViewGroup parent, int layoutId) { ViewHolder viewHolder = null; if (convertView == null) { viewHolder = new ViewHolder(context, parent, layoutId); } else { viewHolder = (ViewHolder) convertView.getTag(); } return viewHolder; } /** * 通过id获取组件 * 注意不要将组件声明到全局,否则永远获取的是最后一个组件 * @param viewId * @return */ @SuppressWarnings("unchecked") 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; } public View getConvertView() { return this.mConvertView; } public ViewHolder setTextForTextView(int viewId, String text) { TextView tv = getView(viewId); tv.setText(text); return this; } public ViewHolder setImageForImageView(int viewId, int resId) { ImageView image = getView(viewId); image.setImageResource(resId); return this; } public ViewHolder setImageForImageView(int viewId, Bitmap bitmap) { ImageView image = getView(viewId); image.setImageBitmap(bitmap); return this; } }
相关文章推荐
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- android 打造万能的ListView GridView 适配器
- Android打造ListView和GridView万能适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- 打造android偷懒神器———ListView的万能适配器
- Android 打造自己的解耦JavaBean的RecyclerView万能适配器(三)
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android打造listview万能适配器(上)
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android基础——快速开发之打造万能适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android 快速开发系列 打造万能的ListView GridView 适配器