一.创建文件(Mainjava,activity_mainxml,recycle_itemxml)
二.写入准备使用的数据
private RecyclerView recyclerView;
private String [] titles = {
"小李","小王","小王","小王","小王"
};
private String[] price ={
"12-12:21","12-12:21","12-12:21","12-12:21","12-12:21"
};
private int[] icons = {
R.drawable.k13,R.drawable.k13,R.drawable.k13,R.drawable.k13,R.drawable.k13
};
三.初始化相应适配器和界面
首先是将recycleVIew界面定义,同时创建相应的recycleVIew的适配器,重写其三个方法,创建一个VIewholder,绑定VIewholder和确定recycleView的显示条数
recyclerView = findViewById(R.id.rcv);
//线性垂直
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
//创建适配器对象
MyAdapter myAdapter = new MyAdapter();
recyclerView.setAdapter(myAdapter);
}
//创建适配器
class MyAdapter extends RecyclerView.Adapter<MyViewHolder>{
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//创建一个Viewholder
MyViewHolder myViewHolder = new MyViewHolder(LayoutInflater.from(MainActivity.this)
.inflate(R.layout.recycle_item,parent,false));
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
//绑定VIewholder
holder.imv.setBackgroundResource(icons[position]);
holder.title.setText(titles[position]);
holder.price.setText(price[position]);
}
@Override
public int getItemCount() {
//获取item
return titles.length;
}
}
将之前的相关数据匹配适配器,就能基本实现相关的功能
class MyViewHolder extends RecyclerView.ViewHolder{
ImageView imv;
TextView title;
TextView price;
public MyViewHolder(View itemView){
super(itemView);
imv = itemView.findViewById(R.id.imv);
title = itemView.findViewById(R.id.tv_title);
price = itemView.findViewById(R.id.price);
}
}
配上xml文件的相关代码
activity_MainXML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rcv"
android:layout_width="412dp"
android:layout_height="672dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<TextView
android:id="@+id/textView"
android:layout_width="135dp"
android:layout_height="41dp"
android:layout_marginTop="8dp"
android:text="实例演示"
android:textSize="30dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
recycle_itemXML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="250dp"
android:layout_height="100dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="8dp"
android:text="TextView"
app:layout_constraintStart_toEndOf="@+id/imv"
app:layout_constraintTop_toTopOf="@+id/imv" />
<TextView
android:id="@+id/price"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginTop="24dp"
android:text="TextView"
app:layout_constraintStart_toStartOf="@+id/tv_title"
app:layout_constraintTop_toBottomOf="@+id/tv_title" />
<ImageView
android:id="@+id/imv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@tools:sample/avatars" />
</androidx.constraintlayout.widget.ConstraintLayout>
演示实例