简体   繁体   English

无法识别我在 RecyclerView.Adapter 中创建的方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM