首页 > 解决方案 > 要么被声明为抽象,要么在中实现抽象方法 onBindViewHolder(VH,int)

问题描述

public class SubjectAdapter extends RecyclerView.Adapter<SubjectHolder> {
private ArrayList<Subjects> subjectsArrayList=new ArrayList<Subjects>();
private  Context mContext;


public SubjectAdapter(Context context) {
    mContext=context;
    populateList();
    this.subjectsArrayList = subjectsArrayList;
}

public void populateList(){
//Populates subjectArrayList 
}
@Override
public void onBindViewHolder(@NonNull SubjectHolder holder, int position, @NonNull List payloads) {
    super.onBindViewHolder(holder, position, payloads);
    Subjects subject=subjectsArrayList.get(position);
    holder.setSubjectName(subject.getSubjectCode());


}

@NonNull
@Override
public SubjectHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater layoutInflater=LayoutInflater.from(parent.getContext());
    View cardView=layoutInflater.inflate(R.layout.activity_card,parent,false);
    SubjectHolder subjectHolder=new SubjectHolder(cardView);
    return subjectHolder;
}


@Override
public int getItemCount() {
    return subjectsArrayList.size();
}

}

我阅读了类似问题的答案,但似乎没有成功。SubjectHolder 是一个类,它包含 TextView 和 GridView。我实际上是想获得这样的观点, 在此处输入图像描述

标签: javaandroidandroid-viewholder

解决方案


有两种onBindViewHolder()方法。必须实现两个参数之一,因为它被声明abstractRecyclerView.Adapter. 您实现了三参数onBindViewHolder()方法,这很好,但您仍然需要二参数方法。


推荐阅读