1.先在build.gdrdle(module)先添加依赖
implementation 'androidx.recyclerview:recyclerview:1.0.0'
2.在我们mainActivity.xml下添加以下代码,这样就把我们的RecyclerView成功添加引入到mainActivity.xml下
3.创建一个person类
public class Person {
private String name;
private String age;
private String sex;
public Person(String name, String age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
4.创建一个person_item.xml布局
5.为RecyclerView准备一个适配器,新建一个PersonAdapter类,让这个适配器继承RexyclerView.Adapter,并将泛型指定为PersonAdapter.ViewHolder,其中ViewHolder是我们PersonAdapter中定义的一个内部类。
public class PersonAdapter extends RecyclerView.Adapter{ private List mPerson;//创建一个list集合 static class ViewHolder extends RecyclerView.ViewHolder{ TextView name,age,sex; public ViewHolder(@NonNull View view) { super(view); //在这里将我们person_item.xml里面的布局进行绑定 name=view.findViewById(R.id.person_name); age=view.findViewById(R.id.person_age); sex=view.findViewById(R.id.person_sex); } } public PersonAdapter() { } public PersonAdapter(List mPerson) { this.mPerson = mPerson; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()). inflate(R.layout.activity_person_item, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { Person person = mPerson.get(position); holder.name.setText(person.getName()); holder.age.setText(person.getAge()); holder.sex.setText(person.getSex()); } @Override public int getItemCount() { return mPerson.size(); } }
6.接着编写我们的mainactivity
public class MainActivity extends AppCompatActivity {
private List personList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initPerson();
//绑定我们的布局
7.那么最后就是运行一下了
扩展:RecyclerView的点击事件
在我们view Holder这个内部类进行修改
static class ViewHolder extends RecyclerView.ViewHolder{
TextView name,age,sex;
View personView;
public ViewHolder(@NonNull View view) {
super(view);
personView=view;
//在这里将我们person_item.xml里面的布局进行绑定
name=view.findViewById(R.id.person_name);
age=view.findViewById(R.id.person_age);
sex=view.findViewById(R.id.person_sex);
}
}
在onBindViewHolder方法里面添加代码进行监听事件
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Person person = mPerson.get(position);
holder.name.setText(person.getName());
holder.age.setText(person.getAge());
holder.sex.setText(person.getSex());
holder.name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "我点击的是"+person.getName(), Toast.LENGTH_SHORT).show();
}
});
holder.age.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "我点击的是"+person.getAge(), Toast.LENGTH_SHORT).show();
}
});
holder.sex.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "我点击的是"+person.getSex(), Toast.LENGTH_SHORT).show();
}
});
}



