Java 无法使用我的类extends RecyclerView.Adapter中的onBindViewHolder实现
我刚在一周内加入这个论坛,我遇到了Android中RecyclerView.Adapter的一个问题 通过遵循示例代码和文档,我试图自己构建一个自定义适配器类,但它仍然停留在从其超类RecyclerView.adapter继承的方法之一。尽管我编写了一个继承了viewholder的内部类,就像示例代码一样,但在onBindViewHolder()方面仍然存在错误 下面是我的内部类代码:Java 无法使用我的类extends RecyclerView.Adapter中的onBindViewHolder实现,java,android,android-recyclerview,Java,Android,Android Recyclerview,我刚在一周内加入这个论坛,我遇到了Android中RecyclerView.Adapter的一个问题 通过遵循示例代码和文档,我试图自己构建一个自定义适配器类,但它仍然停留在从其超类RecyclerView.adapter继承的方法之一。尽管我编写了一个继承了viewholder的内部类,就像示例代码一样,但在onBindViewHolder()方面仍然存在错误 下面是我的内部类代码: public static class ViewHolder extends RecyclerView.Vie
public static class ViewHolder extends RecyclerView.ViewHolder{
private final TextView tvTitle,tvDate,tvTime;
public ViewHolder(View v){
super(v);
Log.d(TAG,"building view holder");
tvTitle=v.findViewById(R.id.item_tvTitle);
tvDate=v.findViewById(R.id.item_tvDate);
tvTime=v.findViewById(R.id.item_tvTime);
//set onclick listener to start another activity
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
public TextView getTvTitle(){return tvTitle;}
public TextView getTvDate(){return tvDate;}
public TextView getTvTime(){return tvTime;}
}
以下是我的适配器代码:
public class EventAdapter extends RecyclerView.Adapter {
private static final String TAG="EventAdapter";
private Event[] dataset;
public static class ViewHolder extends RecyclerView.ViewHolder{
private final TextView tvTitle,tvDate,tvTime;
public ViewHolder(View v){
super(v);
Log.d(TAG,"building view holder");
tvTitle=v.findViewById(R.id.item_tvTitle);
tvDate=v.findViewById(R.id.item_tvDate);
tvTime=v.findViewById(R.id.item_tvTime);
//set onclick listener to start another activity
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
public TextView getTvTitle(){return tvTitle;}
public TextView getTvDate(){return tvDate;}
public TextView getTvTime(){return tvTime;}
}
public EventAdapter(List<Event> dataset){
Log.d(TAG,"Constructor, converting list to array");
this.dataset=dataset.toArray(new Event[dataset.size()]);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup container,int viewType){
Log.d(TAG,"onCreateViewHolder");
View v= LayoutInflater.from(container.getContext()).inflate(R.layout.item_event,container,false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, final int position){
Log.d(TAG,"onBindViewHolder");
viewHolder.getTvTitle().setText("Title: "+dataset[position].getTitle());
viewHolder.getTvDate().setText("Date: "+dataset[position].getDate());
viewHolder.getTvTime().setText("Time: "+dataset[position].getTime());
}
@Override
public int getItemCount(){return dataset.length;}
}
感谢您解决了我的问题因此,要成功编译,请更改
public class EventAdapter extends RecyclerView.Adapter<EventAdapter.ViewHolder>
公共类EventAdapter扩展了RecyclerView.Adapter{
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
返回null;
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int位置){
}
@凌驾
public int getItemCount(){
返回0;
}
公共静态类ViewHolder扩展了RecyclerView.ViewHolder{
公共视图持有者(@NonNull View itemView){
超级(项目视图);
}
}
}请显示来自RecyclerView适配器的代码。@Yriborodkin,已编辑。谢谢你的帮助。
public class EventAdapter extends RecyclerView.Adapter<EventAdapter.ViewHolder>
public void onBindViewHolder(EventAdapter.ViewHolder viewHolder, final int position)
public class EventAdapter extends RecyclerView.Adapter<EventAdapter.ViewHolder> {
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return null;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 0;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(@NonNull View itemView) {
super(itemView);
}
}