怎么定义MyAdapter 类
时间: 2023-07-10 09:06:01 浏览: 149
MyAdapter 是一个自定义的适配器类,用于将数据源绑定到RecyclerView上。它需要继承自RecyclerView.Adapter类,并实现其中的三个方法:onCreateViewHolder、onBindViewHolder和getItemCount。
其中,onCreateViewHolder 方法用于创建ViewHolder实例,该方法需要返回一个继承自RecyclerView.ViewHolder的实例,该实例需要通过LayoutInflater将布局文件转换成View,并传入ViewHolder中。
onBindViewHolder 方法用于绑定ViewHolder和数据源,该方法需要将数据源中的数据绑定到ViewHolder的对应控件上。
getItemCount 方法用于返回数据源的大小,即RecyclerView中包含的列表项数。
下面是一个简单的MyAdapter类的示例代码:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mDataList;
public MyAdapter(List<String> dataList) {
mDataList = dataList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.mTextView.setText(mDataList.get(position));
}
@Override
public int getItemCount() {
return mDataList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView mTextView;
ViewHolder(@NonNull View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
}
}
}
```
在上述代码中,我们假设item_layout是RecyclerView列表项的布局文件,其中包含一个id为text_view的TextView控件,用于显示列表项的数据。MyAdapter类的构造函数中需要传入一个List<String>类型的数据源,并将其赋值给成员变量mDataList。在onCreateViewHolder方法中,我们通过LayoutInflater将item_layout布局文件转换成View,并传入ViewHolder中。在onBindViewHolder方法中,我们将数据源中对应位置的数据绑定到ViewHolder的mTextView控件上。在getItemCount方法中,我们返回数据源的大小,即RecyclerView列表项的数量。最后,我们定义了一个ViewHolder内部类,用于持有列表项中的控件实例。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)