我已经创建了一个自定义适配器来处理RecyclerView。
出于某种原因,在初始化之后我可以从中调用的唯一方法是被覆盖的方法。谁能解释为什么会这样?我不知道!
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
private List<Item> items;
public static class ViewHolder extends RecyclerView.ViewHolder {
private ImageView icon;
private TextView text;
public ViewHolder(View item) {
super(item);
text = (TextView) itemView.findViewById(R.id.t);
icon = (ImageView) itemView.findViewById(R.id.i);
}
....
}
public CustomAdapter(List<Item> items) {
this.items = items;
}
@Override
public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup container, int type) {
View v = LayoutInflater.from(container.getContext())
.inflate(R.layout.fragment, container, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
//method content
}
// EVERY METHOD I HAVE WRITTEN FROM HERE ONWARDS GOES UNDETECTED
public int getCount() {
return items.size();
}
}
即。当我实例化适配器的实例时:
private RecyclerView.Adapter adapter = new CustomAdapter(items);
然后我尝试拨打adapter.getCount()
它没有检测到getCount()
。
getCount()
没有出现在自动填充选项中。
getCount()
显示错误,该错误只是说“无法解决方法”。 getCount()
类中的CustomAdapter
表示它从未被使用过。这适用于所有没有@override的方法。
就好像方法不存在一样。我不能打电话给他们,但他们在那里。我完全不知所措!
答案 0 :(得分:2)
变化
private RecyclerView.Adapter adapter = new CustomAdapter(items);
到
private CustomAdapter adapter = new CustomAdapter(items);