public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) { if(getItemViewType(position)==0) { ((ItemViewHolder) holder).update(); //设置点击回调 if (mOnItemClickListener !=null){ holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOnItemClickListener.onItemClick( holder.itemView,position); } }); } }else { ((FootViewHolder) holder).update(); } postiton报红
时间: 2024-02-14 22:13:14 浏览: 139
在你提供的代码中,`postiton`报红的原因是因为你在`onBindViewHolder`方法中使用了一个未声明的变量`postiton`,而实际上你想使用的是`position`。
正确的代码应该是这样的:
```java
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, final int position) {
if(getItemViewType(position) == 0) {
((ItemViewHolder) holder).update();
//设置点击回调
if(mOnItemClickListener != null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onItemClick(holder.itemView, position);
}
});
}
} else {
((FootViewHolder) holder).update();
}
}
```
请注意,我只是将`postiton`改为了`position`,如果你在其他地方也有类似的错误,也需要进行相应的修改。
阅读全文