<AdapterClass> 要么被声明为抽象的,要么在 <AdapterClass> 中实现抽象方法 onBindViewHolder(VH,int)
<AdapterClass> either be declared abstract or implement abstract method onBindViewHolder(VH,int) in <AdapterClass>
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 是一个 class ,其中包含 TextView 和 GridView。
我实际上是想获得这样的视图,
有两种onBindViewHolder()
方法。必须实现双参数的,因为它在RecyclerView.Adapter
中被声明为abstract
。你实现了三参数的onBindViewHolder()
方法,这很好,但你仍然需要二参数的方法。
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 是一个 class ,其中包含 TextView 和 GridView。
我实际上是想获得这样的视图,
有两种onBindViewHolder()
方法。必须实现双参数的,因为它在RecyclerView.Adapter
中被声明为abstract
。你实现了三参数的onBindViewHolder()
方法,这很好,但你仍然需要二参数的方法。