RecyclerView的Adapter给textView赋值
时间: 2023-11-16 20:29:18 浏览: 44
在 `RecyclerView` 中给 `TextView` 赋值,需要在 `RecyclerView` 的 `Adapter` 中的 `onBindViewHolder()` 方法中进行。假设你想给一个名为 `textView` 的 `TextView` 赋值,可以按照以下步骤:
1. 在 `onBindViewHolder()` 方法中获取当前位置的数据对象,例如:
```java
Object item = itemList.get(position);
```
2. 从数据对象中获取需要显示的文本,例如:
```java
String text = item.getText();
```
3. 将文本设置到 `TextView` 中,例如:
```java
holder.textView.setText(text);
```
完整的代码示例:
```java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<Object> itemList;
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public ViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.text_view);
}
}
@Override
public ViewHolder onCreateViewHolder(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(ViewHolder holder, int position) {
Object item = itemList.get(position);
String text = item.getText();
holder.textView.setText(text);
}
@Override
public int getItemCount() {
return itemList.size();
}
}
```
其中,`ViewHolder` 是一个内部类,用于缓存 `item_layout` 布局中的控件,避免反复调用 `findViewById()` 方法,提高性能。在 `onCreateViewHolder()` 方法中,我们可以通过 `LayoutInflater` 将布局文件 `item_layout` 转换成 `View` 对象,并将其封装到 `ViewHolder` 中返回。在 `onBindViewHolder()` 方法中,我们可以从缓存的 `ViewHolder` 中获取 `TextView` 对象,并将文本设置到其中。最后,`getItemCount()` 方法返回数据集合的大小。