官方文档指南:
配置环境和导入库;
local.properties >>> 输入或修改sdk的地址:sdk.dir=……
导入recyclerview依赖库:
build.gradle >>> dependencies{}
implementation 'androidx.recyclerview:recyclerview:1.0.0'
java:
adapter:
public class couple_adapter extends RecyclerView.Adapter<couple_holder> {//继承RecyclerView.Adapter<ViewHolder>,ViewHolder即自己创建的的holder(如下方代码)
//创建data集合,用于获取数据
public List<couple_bean> datalist;
public couple_adapter(List<couple_bean> datalist){
this.datalist = datalist;
}
//以下三个是继承父类重写的方法
@NonNull
@Override
public couple_holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//创建ViewHolder
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_list_item, parent, false);
return new couple_holder(view);
}
@Override
public void onBindViewHolder(@NonNull couple_holder holder, int position) {
//创建Bean类对象,获取position处的data,将data赋予ViewHolder中的组件,
couple_bean bean = datalist.get(position);
holder.icon.setImageResource(bean.icon);
holder.text.setText(bean.text);
}
@Override
public int getItemCount() {
//返回数据集合长度
return datalist.size();
}
}
bean:
//创建数据demo
public class couple_bean {
public int icon;
public String text;
}
data:
public class couple_data {
//创建icon集合
public static int[] icons = {
R.drawable.a1,
R.drawable.a2,
R.drawable.a3,
R.drawable.a4,
R.drawable.a5,
R.drawable.a6,
R.drawable.a7,
R.drawable.a8,
R.drawable.a9,
R.drawable.a10,
R.drawable.a11,
R.drawable.a12,
R.drawable.a13,
R.drawable.a14,
R.drawable.a15,
R.drawable.a16,
R.drawable.a17,
R.drawable.a18,
R.drawable.a19,
R.drawable.a20
};
}
viewholder:
public class couple_holder extends RecyclerView.ViewHolder {
public final ImageView icon;
public final TextView text;
public couple_holder(@NonNull View itemView) {
//调用父类构造方法
super(itemView);
icon = itemView.findViewById(R.id.icon);
text = itemView.findViewById(R.id.text);
}
}
MainActivity:
public class MainActivity extends AppCompatActivity {
//创建数据集合
List<couple_bean> datalist = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recycler_view = findViewById(R.id.recycler_view);
//调用数据,存入数据集合
initData();
//RecyclerView创建适配器
recycler_view.setAdapter(new couple_adapter(datalist));
//RecyclerView创建布局管理器
recycler_view.setLayoutManager(new LinearLayoutManager(MainActivity.this));
}
public void initData(){
for (int i=0; i<couple_data.icons.length; i++){//一是:注意等号的使用;二是:数据长度
couple_bean data = new couple_bean();
data.icon = couple_data.icons[i];
data.text = "排名第" + i + "的傻逼。";
datalist.add(data);
}
}
}
layout:
activity_main:
<?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/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
layout_list_item:
<?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="90dp"
android:gravity="center">
<ImageView
android:id="@+id/icon"
android:layout_width="118dp"
android:layout_height="88dp" />
<TextView
android:id="@+id/text"
android:layout_width="240dp"
android:layout_height="88dp"
android:text="TextView" />
</LinearLayout>