Android5X中对使用很久的ListView做了升级,增加了一个使用方便效率更高的控件——RecyclerView,他是support-7包中的新组件,该组件会自动帮你回收复用每一个item.
在使用之前,必须要在项目中引用可以支持的易拉宝,布局与ListView基本相似。
implementation 'androidx.recyclerview:recyclerview:1.2.0'
创建继承RecyclerView.Adapter<RecyclerAdapter.ViewHolder>
1,首先需要载继承RecyclerView.Adapter中新建内部类,继承RecyclerView.ViewHolder。
2 ,继承RecyclerView.Adapter<RecyclerAdapter.ViewHolder>类,实现三个方法
1> onCreateViewHolder() ;该方法用于创建holder对象
2>onBindViewHolder () 用于关联视图与数据的关系
3> getItemCount () 返回组要展示子控件的条数
RecyclerView需要展示数据,那么必然需要一个TextView组件用于接收显示的数据,可以在在holder中声明:
public class ViewHolder extends RecyclerView.ViewHolder { private TextView textView; public ViewHolder(@NonNull View itemView) { super(itemView); textView = (TextView) itemView; }
为了能在RecyclerView 中实现监听事件,可以在该类中新建一个接口对象,同时显示set方法,实现实时监听点击的item的position位置,为后续的实现点击事件做准备
public interface OnItemClickListener{ //接口 void onItemClickMethod(View view,int position); }public void setItemClickListener(OnItemClickListener itemClickListener) { this.itemClickListener = itemClickListener; }private OnItemClickListener itemClickListener; //自定义接口
在holder类中,因为我们要实现的是当用户点击item时,也就是textView,那么这个继承RecyclerView.ViewHolder的必要要实现View.OnClickListener方法
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ private TextView textView; public ViewHolder(@NonNull View itemView) { super(itemView); textView = (TextView) itemView; textView.setOnClickListener(this); } /* 通过接口实现回调RecyclerView的点击事件 */ @Override public void onClick(View view) { if(itemClickListener != null){ textView.setElevation(80); itemClickListener.onItemClickMethod(view,getLayoutPosition()); textView.