Java 错误:类CatatanAdapter中的构造函数CatatanAdapter无法应用于给定类型
我是Android Studio编程新手。我的RecyclerView项目有问题。我已经检查了整个代码,但没有找到问题所在。这会给我一个错误“CatatanAdapter类中的构造函数CatatanAdapter不能应用于给定的类型;” My CatatanAdapter.java:Java 错误:类CatatanAdapter中的构造函数CatatanAdapter无法应用于给定类型,java,android,android-recyclerview,Java,Android,Android Recyclerview,我是Android Studio编程新手。我的RecyclerView项目有问题。我已经检查了整个代码,但没有找到问题所在。这会给我一个错误“CatatanAdapter类中的构造函数CatatanAdapter不能应用于给定的类型;” My CatatanAdapter.java: public class CatatanAdapter extends RecyclerView.Adapter<CatatanAdapter.ViewHolder> { @Override publ
public class CatatanAdapter extends RecyclerView.Adapter<CatatanAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ListItem listItem = listItems.get(position);
holder.textViewJudulnya.setText(listItem.getJudulnya());
holder.textViewCatatannya.setText(listItem.getCatatannya());
}
@Override
public int getItemCount() {
return listItems.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewJudulnya;
public TextView textViewCatatannya;
public ViewHolder(View itemView) {
super(itemView);
textViewJudulnya = itemView.findViewById(R.id.judulnya);
textViewCatatannya = itemView.findViewById(R.id.catatannya);
}
}
}
错误:
error: constructor CatatanAdapter in class CatatanAdapter cannot be
applied to given types;
required: no arguments
found: List<ListItem>,Catatan
reason: actual and formal argument lists differ in length
错误:类CatatanAdapter中的构造函数CatatanAdapter不能为
适用于给定类型;
必需:无参数
发现:列表,卡塔坦
原因:实际参数列表和正式参数列表长度不同
您必须添加一个构造函数方法-
或者尝试错误地访问列表项
构造函数。在没有看到导入语句的情况下,您可能混淆了ListView
和RecyclerView
public CatatanAdapter(ArrayList<ListItem> items, Context context) {
this.setContext(context);
this.setItems(items);
}
publiccatanadapter(arraylistitems,Context){
this.setContext(context);
这是一个集合项目(items);
}
请参阅…您正在调用的
adapter=new catatanapter(列表项,此项)但是在CatatanAdapter
类中没有这样的构造函数。将以下代码添加到CatatanAdapter
类中
ArrayList<ListItem > listItems = new ArrayList<>();
Context context;
public CatatanAdapter(ArrayList<ListItem > listItems, Context context) {
this.listItems = listItems;
this.context = context;
}
ArrayList listItems=new ArrayList();
语境;
公共CatataAdapter(ArrayList listItems,上下文){
this.listItems=listItems;
this.context=上下文;
}
您能解释更多吗?基本上,构造函数用于将所需的参数传递给下一个类。
public CatatanAdapter(ArrayList<ListItem> items, Context context) {
this.setContext(context);
this.setItems(items);
}
ArrayList<ListItem > listItems = new ArrayList<>();
Context context;
public CatatanAdapter(ArrayList<ListItem > listItems, Context context) {
this.listItems = listItems;
this.context = context;
}