Recycleview的adapter封装
来源:互联网 发布:云计算数据中心 编辑:程序博客网 时间:2024/05/18 12:04
ViewHolder封装
public class ViewHolder extends RecyclerView.ViewHolder {private SparseArray<View> mViews;private View mConvertView;private Context mContext;public ViewHolder(Context context, View itemView, ViewGroup parent) { super(itemView); mContext = context; mConvertView = itemView; mViews = new SparseArray<View>();}public static ViewHolder get(Context context, ViewGroup parent, int layoutId) { View itemView = LayoutInflater.from(context).inflate(layoutId, parent, false); ViewHolder holder = new ViewHolder(context, itemView, parent); return holder;}/** * 通过viewId获取控件 * * @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;}}
adapter封装
public abstract class CommonAdapter<T> extends RecyclerView.Adapter<ViewHolder>{protected Context mContext;protected int mLayoutId;protected List<T> mDatas;protected LayoutInflater mInflater;public CommonAdapter(Context context, int layoutId, List<T> datas){ mContext = context; mInflater = LayoutInflater.from(context); mLayoutId = layoutId; mDatas = datas;}@Overridepublic ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType){ ViewHolder viewHolder = ViewHolder.get(mContext, parent, mLayoutId); return viewHolder;}@Overridepublic void onBindViewHolder(ViewHolder holder, int position) { // holder.updatePosition(position); convert(holder, mDatas.get(position),position);}public abstract void convert(ViewHolder holder, T t,int postion);@Overridepublic int getItemCount() { return mDatas.size();} }
使用
idRecy.setAdapter(new CommonAdapter(RecyDemoActivity.this, R.layout.recly_item_layout, arrList) { @Override public void convert(ViewHolder holder, Object o,int postion) { String mStr=o.toString(); TextView tvLL = holder.getView(R.id.tv_item_text); tvLL.setText(mStr); } // @Override // public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { // // } });
阅读全文
0 0
- RecycleView Adapter的封装
- Recycleview的adapter封装
- ReCycleView的 Adapter的封装
- android RecycleView Adapter简单封装
- 仿RecycleView.Adapter封装BaseAdapter
- 使用RecycleView时候的adapter的简单封装
- RecycleView + SwipeRefreshLayout 对adapter和刷新的封装
- 封装RecycleView的Adapter并实现列表展示
- 一个recycleview的adapter
- RecycleView使用和adapter基本封装
- RecycleView适配器的封装
- RecycleView及RecycleView Adapter
- android recycleView的进一步封装
- RecycleView.Adapt的简单封装
- 对RecycleView的adapter的抽取
- 打造通用的recycleview的adapter
- android--RecycleView.Adapter的初体验
- HeaderRecycleAdapter--通用的带头部RecycleView.Adapter
- 平台架构
- ValueError: Input contains NaN, infinity or a value too large for dtype('float64')问题解决
- IO多路复用之select、poll、epoll详解
- Webbench源码分析之多进程(三)
- Android studio 安装3.0遇到的坑
- Recycleview的adapter封装
- quartz.net 时间表达式----- Cron表达式详解
- 10025---Zookeeper入门:基本概念、5项配置、启动
- 问题 B: 求相邻逆序对个数(函数)
- 2017年12月21ri心得体会
- PHP保留两位小数
- HTTP协议详解
- Spring学习笔记01
- 一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录