簡體   English   中英

無法識別我在 RecyclerView.Adapter 中創建的方法

[英]Cannot recognize a method I created in RecyclerView.Adapter

我創建了自己的 class,名為 RecyclerviewAdapter.java 擴展了RecyclerView.Adapter<> ,並在其中創建了一個方法 class

public void setItemCount(int i){
    size=i;
}

我的RecyclerView工作,我希望用戶能夠設置在 RecyclerView 中顯示多少項目。 在 MainActivity 中,當我調用adapter.setItemCount(2)時,它說Cannot resolve method 'setItemCount' in 'Adapter'Method 'setItemCount(int)' is never used 我不知道如何解決它。
這是我的文件。

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

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

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;
}
}

您正在使用RecyclerView.Adapter聲明RecyclerView Adapter,盡管它應該是RecyclerviewAdapter

RecyclerView.Adapter是 SDK class,但RecyclerviewAdapter是你的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM