|
1.添加依赖,在gradle 中依赖下面的包
implementation 'androidx.recyclerview:recyclerview:1.0.0'
2、在activity_main.xml中添加控件
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
3、创建item布局,doctor_info_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="80">
<ImageView
android:id="@+id/img_doctor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingHorizontal="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10">
<TextView
android:id="@+id/tv_doctor_name_info"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50" />
<TextView
android:id="@+id/tv_doctor_name"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10">
<TextView
android:id="@+id/tv_bed_num_info"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50" />
<TextView
android:id="@+id/tv_bed_num"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="50" />
</LinearLayout>
</LinearLayout>
4、创建一个实体类,作为适配器的适配类型
package com.example.recyclerview_test;
public class DoctorInfo {
private int img_doctor;
private String doctor_name_info;
private String doctor_name;
private String bed_num_info;
private String bed_num;
public int getImg_doctor() {
return img_doctor;
}
public void setImg_doctor(int img_doctor) {
this.img_doctor = img_doctor;
}
public String getDoctor_name_info() {
return doctor_name_info;
}
public void setDoctor_name_info(String doctor_name_info) {
this.doctor_name_info = doctor_name_info;
}
public String getDoctor_name() {
return doctor_name;
}
public void setDoctor_name(String doctor_name) {
this.doctor_name = doctor_name;
}
public String getBed_num_info() {
return bed_num_info;
}
public void setBed_num_info(String bed_num_info) {
this.bed_num_info = bed_num_info;
}
public String getBed_num() {
return bed_num;
}
public void setBed_num(String bed_num) {
this.bed_num = bed_num;
}
}
5、创建一个适配器
package com.example.recyclerview_test;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class AdapterDoctor extends RecyclerView.Adapter<AdapterDoctor.ViewHoder> {
private List<DoctorInfo> doctorInfoList;
public AdapterDoctor(List<DoctorInfo> doctorInfoList) {
this.doctorInfoList = doctorInfoList;
}
static public class ViewHoder extends RecyclerView.ViewHolder {
ImageView img_doctor;
TextView tv_doctor_name_info;
TextView tv_doctor_name;
TextView tv_bed_num_info;
TextView tv_bed_num;
public ViewHoder(@NonNull View itemView) {
super(itemView);
img_doctor = itemView.findViewById(R.id.img_doctor);
tv_doctor_name_info = itemView.findViewById(R.id.tv_doctor_name_info);
tv_doctor_name = itemView.findViewById(R.id.tv_doctor_name);
tv_bed_num_info = itemView.findViewById(R.id.tv_bed_num_info);
tv_bed_num = itemView.findViewById(R.id.tv_bed_num);
}
}
@Override
public int getItemCount() {
return doctorInfoList.size();
}
@NonNull
@Override
public ViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).
inflate(R.layout.doctor_info_item,parent,false);
ViewHoder viewHoder=new ViewHoder(view);
return viewHoder;
}
@Override
public void onBindViewHolder(@NonNull ViewHoder holder, int position) {
DoctorInfo doctorInfo=doctorInfoList.get(position);
holder.img_doctor.setImageResource(doctorInfo.getImg_doctor());
holder.tv_doctor_name_info.setText(doctorInfo.getDoctor_name_info());
holder.tv_doctor_name.setText(doctorInfo.getDoctor_name());
holder.tv_bed_num_info.setText(doctorInfo.getBed_num_info());
holder.tv_bed_num.setText(doctorInfo.getBed_num());
}
}
6、在MainActivity中创建实例,并把所需要的数据添加进去
package com.example.recyclerview_test;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<DoctorInfo> doctorInfoList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initList();
RecyclerView recyclerView=findViewById(R.id.recycle_view);
LinearLayoutManager manager=new LinearLayoutManager(this);
//recyclerView.setLayoutManager(manager);
recyclerView.setLayoutManager(new GridLayoutManager(this,2));
AdapterDoctor adapterDoctor=new AdapterDoctor(doctorInfoList);
recyclerView.setAdapter(adapterDoctor);
}
private void initList() {
for(int i=0;i<10;i++){
DoctorInfo info=new DoctorInfo();
info.setImg_doctor(R.drawable.aa);
info.setDoctor_name_info("责任医生:");
info.setDoctor_name("张大陆");
info.setBed_num_info("床位");
info.setBed_num("0"+i);
doctorInfoList.add(info);
}
}
}
|