ListView 通用适配器
来源:互联网 发布:hadoop 处理数据 编辑:程序博客网 时间:2024/05/20 23:38
public abstract class CommonAdapter<T> extends BaseAdapter { protected LayoutInflater mInflater; protected Context mContext; protected List<T> mDatas; protected final int mItemLayoutId; public CommonAdapter(Context context,int itemLayoutId, List<T> mDatas ) { this.mContext = context; this.mInflater = LayoutInflater.from(mContext); this.mDatas = mDatas; this.mItemLayoutId = itemLayoutId; } @Override public int getCount() { return mDatas.size(); } @Override public T getItem(int position) { return mDatas.get(position); } @Override public long getItemId(int position) {return position;} @Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder = getViewHolder(position, convertView,parent); convert(viewHolder, getItem(position)); return viewHolder.getConvertView(); } public abstract void convert(ViewHolder helper, T item); private ViewHolder getViewHolder(int position, View convertView, ViewGroup parent) { return ViewHolder.get(mContext, convertView, parent, mItemLayoutId, position); } /** * 内部类 */ public static 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); mConvertView.setTag(this); } /** * 拿到一个ViewHolder对象 */ 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 */ 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设置字符串 */ public ViewHolder setText(int viewId, String text) { TextView view = getView(viewId); view.setText(text); return this; } /** * 为ImageView设置图片 */ public ViewHolder setImageResource(int viewId, int drawableId) { ImageView view = getView(viewId); view.setImageResource(drawableId); return this; } /** * 为ImageView设置图片 */ public ViewHolder setImageBitmap(int viewId, Bitmap bm) { ImageView view = getView(viewId); view.setImageBitmap(bm); return this; } /** * 为ImageView设置图片 */ public ViewHolder setImageByUrl(int viewId, String url) { // ImageLoader.getInstance(3, Type.LIFO).loadImage(url, (ImageView) getView(viewId)); // Glide.with(context).load(url).into(view); return this; } public int getPosition() { return mPosition; } }}
//使用方法
datas=List<Student> 集合数据类型CommonAdapter mAdapter = new CommonAdapter<Student>(CardListActivity.this, R.layout.item_card, datas) { @Override public void convert(ViewHolder helper, Student item) { helper.setText(R.id.name, item.getName()); helper.setText(R.id.address, item.getAddress()); }}; mylistView.setAdapter(mAdapter);
阅读全文
0 0
- ListView通用适配器
- Android Listview通用适配器
- listview、gridview通用适配器
- ListView通用适配器
- ListView、GrideView通用适配器
- ListView 通用适配器
- listview通用适配器和RecyclerView通用适配器
- 【Android笔记】 通用ListView适配器
- 通用的ListView GridView适配器
- Android 通用ListView、GridView适配器
- Android Listview通用适配器BaseCommAdapter
- Android ListView的通用适配器Adapter
- Android 开发技巧-Listview通用适配器BaseCommAdapter
- 编写通用的Listview、gridview的适配器
- 23—自定义ListView【通用】适配器并实现监听控件
- 自定义ListView【通用】适配器并实现监听控件!
- 自定义ListView【通用】适配器并实现监听控件!
- Android 快速开发系列 万能通用的ListView GridView 适配器
- Swing 的按钮循环添加点击事件并被公共访问
- 剑指offer系列(7)——旋转数组的最小数字
- 数据结构总结之bfs
- Unity鼠标控制物体360°旋转和点击移动
- SpringMVC 拦截器遇到浏览器请求/favicon.ico被拦截导致触发session失效问题的处理办法
- ListView 通用适配器
- 软银中国负责人 潘政荣:80%的创业者没有想清楚要做什么
- [ 随机增量法 ] BZOJ1336 && 1337 && 2823
- JS中点击事件冒泡解析
- 程序员,你还要迷茫多久?
- 年底福利来了,一次性送10本书,就是这么暴力!
- Python去除list中重复的元素
- 基于深度卷积特征的增量式图像识别
- 20171218Capstone培训班