onBindViewHolder 不能使用 viewHolder
onBindViewHolder can´t use viewHolder
我想填写用户名、全名等内容,显示 follow_btn 的可见性。最大的问题是我不能在 onbindviewholder 中使用。它用红色下划线标出。你能帮我吗?
错误是:错误:找不到符号变量follow_btn。
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
viewHolder.follow_btn.setVisibility(View.VISIBLE);
}
@Override
public int getItemCount() {
return User.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView username_search;
public TextView fullname_search;
public CircleImageView profile_pic;
public Button follow_btn;
public ViewHolder(@NonNull View itemView) {
super(itemView);
username_search = itemView.findViewById(R.id.username_search);
fullname_search = itemView.findViewById(R.id.fullname);
profile_pic = itemView.findViewById(R.id.image_profile_pic);
follow_btn = itemView.findViewById(R.id.follow_btn);
}
}
问题出在 class 的命名中。仔细看方法参数,是RecyclerView.ViewHolder。它不是您自己的 ViewHolder class,因此找不到 follow_btn。
因此,要解决此问题,您需要更改 class 声明中的类型。你可能有类似
class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
改为
class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder>
并立即修复其余代码。那么你应该有正确的 onBindViewHolder 方法:
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {...}
我想填写用户名、全名等内容,显示 follow_btn 的可见性。最大的问题是我不能在 onbindviewholder 中使用。它用红色下划线标出。你能帮我吗?
错误是:错误:找不到符号变量follow_btn。
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
viewHolder.follow_btn.setVisibility(View.VISIBLE);
}
@Override
public int getItemCount() {
return User.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView username_search;
public TextView fullname_search;
public CircleImageView profile_pic;
public Button follow_btn;
public ViewHolder(@NonNull View itemView) {
super(itemView);
username_search = itemView.findViewById(R.id.username_search);
fullname_search = itemView.findViewById(R.id.fullname);
profile_pic = itemView.findViewById(R.id.image_profile_pic);
follow_btn = itemView.findViewById(R.id.follow_btn);
}
}
问题出在 class 的命名中。仔细看方法参数,是RecyclerView.ViewHolder。它不是您自己的 ViewHolder class,因此找不到 follow_btn。
因此,要解决此问题,您需要更改 class 声明中的类型。你可能有类似
class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
改为
class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder>
并立即修复其余代码。那么你应该有正确的 onBindViewHolder 方法:
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {...}