如何自定义 RecyclerView 数据适配器?
时间: 2024-08-20 14:01:16 浏览: 52
鸿洋recyclerview万能适配器实战
5星 · 资源好评率100%
自定义RecyclerView的数据适配器(Adapter)通常涉及到三个关键步骤:
1. **创建ViewHolder**:
- ViewHolder是用来复用RecyclerView中的每个item视图的。当新的item添加到列表时,适配器会创建一个新的ViewHolder实例;当滚动删除一个item后,ViewHolder会被标记为可重用。
```java
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView textView; // 或者其他你的视图组件
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
```
2. **继承RecyclerView.Adapter或其子类**:
- 创建一个继承自RecyclerView.Adapter或其子类(如`RecyclerView.Adapter<YourViewHolder>`)的类。这里`YourViewHolder`是你刚才定义的ViewHolder类型。
```java
public class CustomAdapter extends RecyclerView.Adapter<MyViewHolder> {
private List<String> dataList; // 你的数据列表
public CustomAdapter(List<String> dataList) {
this.dataList = dataList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_layout, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
String item = dataList.get(position);
holder.textView.setText(item); // 更新ViewHolder中的视图数据
}
@Override
public int getItemCount() {
return dataList.size();
}
}
```
3. **在Activity/Fragment中设置和管理适配器**:
- 在你的主Activity或Fragment中初始化RecyclerView,设置适配器并加载数据。
```java
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
CustomAdapter adapter = new CustomAdapter(yourDataList);
recyclerView.setAdapter(adapter);
```
阅读全文