1、在app/build.gradle中添加RecyclerView依赖
1 implementation 'com.android.support:recyclerview-v7:28.0.0'
注意依赖版本号
2、布局文件activity_main.xml引入RecycleView
1 <android.support.v7.widget.RecyclerView 2 android:id="@+id/recycler_view" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
3、泛型类型Fruit.java
1 package com.example.lalala.recyclerviewdemo; 2 3 public class Fruit { 4 private String name; 5 private int imageId; 6 public Fruit(String name,int imageId){ 7 this.name = name; 8 this.imageId = imageId; 9 } 10 11 public String getName() { 12 return name; 13 } 14 15 public int getImageId() { 16 return imageId; 17 } 18 }
4、布局fruit_item.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="horizontal" android:layout_width="match_parent" 4 android:layout_height="wrap_content"> 5 <ImageView 6 android:id="@+id/fruit_image" 7 android:layout_width="wrap_content" 8 android:layout_height="wrap_content" /> 9 <TextView 10 android:id="@+id/fruit_name" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:layout_gravity="center_vertical" 14 android:layout_marginLeft="10dp" 15 /> 16 </LinearLayout>
5、适配器FruitAdapter.java
1 package com.example.lalala.recyclerviewdemo; 2 3 import android.support.annotation.NonNull; 4 import android.support.v7.widget.RecyclerView; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.view.ViewGroup; 8 import android.widget.ImageView; 9 import android.widget.TextView; 10 11 import java.util.List; 12 13 public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> { 14 //适配器保存的数据 15 private List<Fruit> mFruitList; 16 //view容器类,ViewHolder容纳view 17 static class ViewHolder extends RecyclerView.ViewHolder{ 18 ImageView imageView; 19 TextView textView; 20 public ViewHolder(View view){ 21 super(view); 22 imageView = (ImageView)view.findViewById(R.id.fruit_image); 23 textView = (TextView)view.findViewById(R.id.fruit_name); 24 } 25 } 26 //构造函数初始化适配器 27 public FruitAdapter(List<Fruit> fruitList){ 28 mFruitList = fruitList; 29 } 30 //创建ViewHolder 31 @NonNull 32 @Override 33 public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { 34 View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fruit_item,viewGroup,false); 35 ViewHolder viewHolder = new ViewHolder(view); 36 return viewHolder; 37 } 38 //绑定数据到ViewHolder 39 @Override 40 public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) { 41 Fruit fruit = mFruitList.get(i); 42 viewHolder.imageView.setImageResource(fruit.getImageId()); 43 viewHolder.textView.setText(fruit.getName()); 44 } 45 //返回子项个数 46 @Override 47 public int getItemCount() { 48 return mFruitList.size(); 49 } 50 }