内容简介:声明:原创作品,转载请注明出处: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中使用不同的布局。
系列文章
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
最优化导论
Edwin K. P. Chong、Stanislaw H. Zak / 孙志强、白圣建、郑永斌、刘伟 / 电子工业出版社 / 2015-10 / 89.00
本书是一本关于最优化技术的入门教材,全书共分为四部分。第一部分是预备知识。第二部分主要介绍无约束的优化问题,并介绍线性方程的求解方法、神经网络方法和全局搜索方法。第三部分介绍线性优化问题,包括线性优化问题的模型、单纯形法、对偶理论以及一些非单纯形法,简单介绍了整数线性优化问题。第四部分介绍有约束非线性优化问题,包括纯等式约束下和不等式约束下的优化问题的最优性条件、凸优化问题、有约束非线性优化问题的......一起来看看 《最优化导论》 这本书的介绍吧!