[英]Cannot recognize a method I created in RecyclerView.Adapter
I created my own class called RecyclerviewAdapter.java that extends RecyclerView.Adapter<>
, and I created a method in that class我创建了自己的 class,名为 RecyclerviewAdapter.java 扩展了RecyclerView.Adapter<>
,并在其中创建了一个方法 class
public void setItemCount(int i){
size=i;
}
My RecyclerView
works, and I want user to be able to set how many items to be displayed in RecyclerView.我的RecyclerView
工作,我希望用户能够设置在 RecyclerView 中显示多少项目。 In MainActivity, when I call adapter.setItemCount(2)
, it says Cannot resolve method 'setItemCount' in 'Adapter'
, also Method 'setItemCount(int)' is never used
.在 MainActivity 中,当我调用adapter.setItemCount(2)
时,它说Cannot resolve method 'setItemCount' in 'Adapter'
, Method 'setItemCount(int)' is never used
。 I don't know how to solve it.我不知道如何解决它。
Here are my files.这是我的文件。
MainActivity.java MainActivity.java
RecyclerView recycler;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager manager;
ArrayList<RecyclerviewItem> list=new ArrayList<>();
list.add(new RecyclerviewItem(R.drawable.hoversfw,"Title","Description"));
manager=new LinearLayoutManager(this);
adapter=new RecyclerviewAdapter(list);
recycler=findViewById(R.id.recycler);
recycler.setHasFixedSize(true);
recycler.setLayoutManager(manager);
recycler.setAdapter(adapter);
if(!count.getText().toString().equals("")) {
int c= Integer.parseInt(count.getText().toString());
adapter.setItemCount(c);
}
RecyclerviewAdapter.java RecyclerviewAdapter.java
public class RecyclerviewAdapter extends RecyclerView.Adapter<RecyclerviewAdapter.RecyclerviewHolder> {
private ArrayList<RecyclerviewItem> list;
private int size;
@NonNull
@Override
public RecyclerviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,parent,false);
RecyclerviewHolder holder=new RecyclerviewHolder(v);
return holder;
}
public RecyclerviewAdapter(ArrayList<RecyclerviewItem>mlist){
list=mlist;
size=1;
}
public void setItemCount(int i){
size=i;
}
@Override
public void onBindViewHolder(@NonNull RecyclerviewHolder holder, int position) {
RecyclerviewItem item=list.get(position);
holder.image.setImageResource(item.getImageResource());
holder.title.setText(item.getTitle());
holder.description.setText(item.getDescription());
}
@Override
public int getItemCount() {
return size;
}
public static class RecyclerviewHolder extends RecyclerView.ViewHolder{
public ImageView image;
public TextView title;
public TextView description;
public RecyclerviewHolder(@NonNull View itemView) {
super(itemView);
image=itemView.findViewById(R.id.img);
title=itemView.findViewById(R.id.title);
description=itemView.findViewById(R.id.description);
}
}
}
RecyclerviewItem.java RecyclerviewItem.java
public class RecyclerviewItem {
private int imageResource;
private String title;
private String description;
public RecyclerviewItem(int mimageResource, String mtitle, String mdescription){
imageResource=mimageResource;
title=mtitle;
description=mdescription;
}
public int getImageResource(){
return imageResource;
}
public String getTitle(){
return title;
}
public String getDescription(){
return description;
}
}
You are declaring RecyclerView
Adapter with RecyclerView.Adapter
although it should be RecyclerviewAdapter
您正在使用RecyclerView.Adapter
声明RecyclerView
Adapter,尽管它应该是RecyclerviewAdapter
RecyclerView.Adapter
is an SDK class, but RecyclerviewAdapter
is yours. RecyclerView.Adapter
是 SDK class,但RecyclerviewAdapter
是你的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.