我正在尝试构建一个自定义的recyclerView适配器,但它在onCreateViewHolder中显示错误。
如何实例化抽象类?
我的代码有什么问题?
我也检查了其他答案,都说你的名字一定是重复的,或者你导入了错误的类,但都没有帮助。
考虑到我正处于学习阶段,一个建议会很好。
public class RegisteredRecyclerAdapter extends RecyclerView.Adapter<RegisteredRecyclerAdapter.ViewHolder> {
public Context context;
private FirebaseAuth firebaseAuth;
private FirebaseFirestore firebaseFirestore;
@NonNull
@Override
public RegisteredRecyclerAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.registered_item_listview,parent,false);
context = parent.getContext();
firebaseFirestore = FirebaseFirestore.getInstance();
firebaseAuth = FirebaseAuth.getInstance();
return new RecyclerView.ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RegisteredRecyclerAdapter.ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 0;
}
public class ViewHolder extends RecyclerView.ViewHolder{
public ViewHolder(@NonNull View itemView) {
super(itemView);
}
}
}
您正在尝试在onCreateViewHolder()
方法中创建RecycleView.ViewHolder
而不是RegisteredRecyclerAdapter.ViewHolder
的实例。由于RecycleView.ViewHolder
是一个abstract
类,因此会出现此错误。
使用return new ViewHolder(view);
正如@Amin所说,您在onCreateViewHolder((中尝试在下方进行无效返回
@NonNull
@Override
public RegisteredRecyclerAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.registered_item_listview,parent,false);
context = parent.getContext();
firebaseFirestore = FirebaseFirestore.getInstance();
firebaseAuth = FirebaseAuth.getInstance();
return new RegisteredRecyclerAdapter.ViewHolder(view); //change here
}