内容简介:声明:原创作品,转载请注明出处:RecyclerView是用于列表展示的控件,对于小白来说,是比较难使用的,下面,我将对它的最基本使用方式进行讲解。这一篇,我讲解了RecyclerView的基本使用方式,下一篇,我会讲解如何在RecyclerView中使用不同的布局。
声明:原创作品,转载请注明出处: www.jianshu.com/p/5525310c0…
RecyclerView是用于列表展示的控件,对于小白来说,是比较难使用的,下面,我将对它的最基本使用方式进行讲解。
- 步骤:
- 添加Recyclerview依赖。
- 在xml文件中添加Recyclerview控件。
- 创建Recyclerview的Adapter(适配器)。
- 将适配器设置给Recyclerview。
一、添加Recyclerview依赖
- 在模块的build.gradle中的dependencies{}中添加如下代码:
implementation 'com.android.support:recyclerview-v7:28.0.0' 复制代码
二、在xml文件中添加Recyclerview控件
<android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent" app:layoutManager="android.support.v7.widget.LinearLayoutManager"/> 复制代码
三、创建Recyclerview的Adapter(适配器)
- 步骤:
- 创建RecyclerView.Adapter类的子类,泛型传入RecyclerView.ViewHolder类。
- 创建RecyclerView.ViewHolder类的子类。
- 在RecyclerView.ViewHolder的子类中初始化item的控件。
- 重写RecyclerView.Adapter类的相关方法。
package com.liuym.myapplication; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import java.util.List; public class RvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { //数据源 private List<Data> mList; public RvAdapter(List<Data> list) { mList = list; } /** * 创建ViewHolder * * @param viewGroup * @param i * @return */ @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View item = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_rv, viewGroup, false); RecyclerView.ViewHolder holder = new MyViewHolder(item); return holder; } /** * 通过ViewHolder对item中的控件进行控制(如:显示数据等等) * * @param viewHolder * @param i */ @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { MyViewHolder holder = (MyViewHolder) viewHolder; Data data = mList.get(i); holder.iv.setImageResource(R.drawable.ic_launcher_background); holder.tv.setText(data.getText()); } /** * 返回列表长度 * * @return */ @Override public int getItemCount() { return mList == null ? 0 : mList.size(); } /** * 创建ViewHolder类,用来缓存item中的子控件,避免不必要的findViewById */ class MyViewHolder extends RecyclerView.ViewHolder { ImageView iv; TextView tv; public MyViewHolder(@NonNull View itemView) { super(itemView); iv = itemView.findViewById(R.id.iv); tv = itemView.findViewById(R.id.tv); } } } 复制代码
四、将适配器设置给Recyclerview
private void initRv() { List<Data> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { String text = String.format("mockData: %1s", i); list.add(new Data(text)); } RecyclerView recyclerView = findViewById(R.id.rv); RvAdapter adapter = new RvAdapter(list); recyclerView.setAdapter(adapter); } 复制代码
总结
这一篇,我讲解了RecyclerView的基本使用方式,下一篇,我会讲解如何在RecyclerView中使用不同的布局。
系列文章
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
实战Java高并发程序设计
葛一鸣、郭超 / 电子工业出版社 / 2015-10-1 / CNY 69.00
在过去单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发就显得尤为重要。 《实战Java高并发程序设计》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论有关“锁”的优化和提高......一起来看看 《实战Java高并发程序设计》 这本书的介绍吧!