博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RecyclerView的使用。
阅读量:5303 次
发布时间:2019-06-14

本文共 2478 字,大约阅读时间需要 8 分钟。

1.  两个布局文件,一个主布局,一个item单项布局。

2. 三个概念,1. adapter,2.viewhold,3.RecyclerView

3. 步骤如下,

首先建立adapter类,里面嵌套内部类,viewhold类。

 

adapter的类,继承的必须符合格式,是v7包下的RecyclerView的Adapter类,此类带有特定的泛型参数。并且实现其内部类的ViewHolder,该类ViewHolder又重写了其父类RecyclerView的ViewHolder的方法。

 

viewhold类,必须继承自RecyclerView的ViewHolder。

 

Adapter中有4个方法,一个构造方法,一个创建时方法,一个绑定时方法,一个取得记录个数。

在构造方法中,将上下文和数据集传入。

在创建时方法中(onCreateViewHolder),解析子布局,即item单项布局文件,并且返回,

在绑定方法中,从数据集中取得单个“i”的数据,并且把数据设置到viewholder中

后两个方法中的ViewHolder是主类中继承的父类的泛型参数,而此泛型参数又是内部类来实现的。主要作用:初始化子布局中的控件。

public class MyRecyclerViewAdapter extends RecyclerView.Adapter
{ private final Context context; private List
divines; public MyRecyclerViewAdapter(Context context, List
divines) { this.context = context; this.divines = divines; } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View itemView = (View) View.inflate(context, R.layout.item_recyclerview,null); return new ViewHolder(itemView); } @Override public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { String gua_name = divines.get(i).getGua_name(); viewHolder.tv_gua_name.setText(gua_name); } @Override public int getItemCount() { return divines.size(); } //内部类,用于解析单项item的布局 class ViewHolder extends RecyclerView.ViewHolder { private TextView tv_gua_name; public ViewHolder(@NonNull View itemView) { super(itemView); tv_gua_name = itemView.findViewById(R.id.tv_gua_name); } }}

 

第二步,将adapter显示在主activity中,

public class AllListActivity extends AppCompatActivity {    private  RecyclerView recyclerView;    private  List
divines; private MyRecyclerViewAdapter adapter ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_all_list); //取数据 DivineDao dd = new DivineDao(this); List
dds = dd.getZhuGua(); recyclerView = findViewById(R.id.rv_all_list);     //传入数据集 adapter = new MyRecyclerViewAdapter(this,dds); recyclerView.setAdapter(adapter);      //设置布局管理,此步骤为必须 recyclerView.setLayoutManager(new LinearLayoutManager(AllListActivity.this, LinearLayoutManager.VERTICAL, false)); }

 

另外,在加入RecyclerView后,有显示不全的情况,参考本文上一个blog

 

转载于:https://www.cnblogs.com/sdgtxuyong/p/10625543.html

你可能感兴趣的文章
快来熟练使用 Mac 编程
查看>>
Node.js 入门:Express + Mongoose 基础使用
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
使用pager进行分页
查看>>
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>