显示错误"ViewHolder"是一个抽象类,无法实例化



我正在尝试构建一个自定义的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
}

最新更新