关于RecyclerView的Adapter封装
来源:互联网 发布:淘宝网中老年冬季服装 编辑:程序博客网 时间:2024/05/21 19:31
项目开发中会涉及到很多列表的页面。如果每个页面都写一个adapter,我们估计会疯掉。我现在的目的就是在保证质量的同时要写更少的代码。所以,封装呗。
recyclerview有自己的adapter和视图管理。我们只需要把实例化时要传入的参数泛型抽象,对不同的view实现不同的获取与设置内容的方法即可。
Adapter:
abstract public class RecyclerViewAdapter<T> extends RecyclerView.Adapter { protected List<T> list; private Integer itemView;//布局id protected View.OnClickListener onClickListener; protected Context mContext; public RecyclerViewAdapter(Context mContext ,List<T> list, Integer itemView) { this.list = list; this.itemView = itemView; this.mContext = mContext; } public RecyclerViewAdapter(List<T> list, int itemView) { this.list = list; this.itemView = itemView; } public void setOnClickListener(View.OnClickListener onClickListener) { this.onClickListener = onClickListener; } abstract public RecyclerView.ViewHolder onCreateViewHolder(View itemView, int viewType); @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = null; view = LayoutInflater.from(parent.getContext()).inflate(itemView, parent, false); return onCreateViewHolder(view, viewType); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyViewHolder viewHolder = (MyViewHolder) holder; if (list != null) { viewHolder.bind(position ,list.get(position)); viewHolder.bind(position); } } @Override public int getItemCount() { return list.size(); }//文本相关 public void setText(TextView text, Object object) { String content = String.valueOf(object); if (TextUtils.isEmpty(content) || content.equals("null")) { text.setText(""); } else { text.setText(content); } }//图片相关 public void setImage(ImageView imageView, String imagePath, int width, int height) { if (TextUtils.isEmpty(imagePath)) { imagePath = "http"; } imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); Picasso.with(imageView.getContext()) .load(imagePath).resize(width, height) .centerCrop() .placeholder(R.mipmap.default_error) .into(imageView); }}
MyViewHolder:
abstract public class MyViewHolder<T> extends RecyclerView.ViewHolder{ public MyViewHolder(View itemView) { super(itemView); } public void bind(int position){ } public void bind(int position ,T item){ }}
阅读全文
1 0
- 关于RecyclerView的Adapter封装
- RecyclerView.Adapter的封装
- Recyclerview Adapter 的简单封装
- RecyclerView.Adapter 的简单封装
- 简单封装RecyclerView的Adapter
- Android 封装RecyclerView的Adapter
- RecyclerView.Adapter的基本封装
- 针对recyclerView的adapter封装
- 一个很好的RecyclerView的Adapter封装
- RecyclerView.Adapter的优化与封装
- RecyclerView.Adapter的封装之路
- 355_封装RecyclerView的Adapter
- ListView和RecyclerView的Adapter封装
- RecyclerView中Adapter和ViewHolder的封装
- 封装RecyclerView.Adapter
- RecyclerView Adapter 封装
- simple封装RecyclerView.Adapter
- RecyclerView Adapter简单封装
- Java本地时间与GMT时间的转换
- 谈谈对Spring IOC的理解
- caffe finetuning
- JdbcTemplate简介
- Java并发之ThreadLocal和InheritableThreadLoacal
- 关于RecyclerView的Adapter封装
- 深入Hadoop之HDFS
- Java-Excel报表开发POI(含POI保护工作表功能)
- PowerShellGet系列(一):PowerShell的最佳管理能手
- Python *args *kwargs
- 第三章 JavaScript 变量、数据类型、对象
- 【Spring】
- 66. Plus One
- 移动端两端对齐支持iPhone6