Recycleview的adapter封装
2017-12-21 16:17
204 查看
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; } @Override public ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) { ViewHolder viewHolder = ViewHolder.get(mContext, parent, mLayoutId); return viewHolder; } @Override public 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); @Override public 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) { // // } });
相关文章推荐
- RecycleView + SwipeRefreshLayout 对adapter和刷新的封装
- android RecycleView Adapter简单封装
- android RecycleView Adapter简单封装
- [置顶] 超级简单RecycleViewAdapter的封装-支持多视图,多点击回调
- android RecycleView Adapter简单封装
- 封装RecycleView的Adapter并实现列表展示
- 超级简单RecycleViewAdapter的封装-支持多视图,多点击回调
- 简单的封装BaseRecycleviewAdapter
- 超级简单RecycleViewAdapter的封装-支持多视图,多点击回调
- RecycleView使用和adapter基本封装
- BaseRecycleViewAdapter的封装,基于多种bean数据源的呈现
- RecycleView Adapter的封装
- Android开发RecycleView的适配器(adapter)无法更新集合中数据
- 自己封装的工具类,使用原生SwipeRefreshLayout+RecycleView实现下拉刷新和加载更多
- view group adapter的封装
- Android 对ListView和RecyclerView的两个BaseAdapter封装分享
- 说说自己封装的一个BaseRecycleAdapter
- RecycleView及RecycleView Adapter
- Recycleview的使用以及编写Recycleview适配器的框架-BaseRecyclerViewAdapterHelper
- Android RecycleView上拉加载BaseAdapter(二)