有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    getItemCount()方法是适配器计算要向用户显示多少项(行)的方法。绝对要求您仅从该方法返回一个int值,并且该值是您希望用户能够看到的项目数

    鉴于你最初的问题显示你在使用两个列表,你似乎应该做两件事中的一件:

    1-返回两个大小的总和

    也许你是想说你的recyclerview应该显示所有的数据源项,然后显示所有的图像项。在这种情况下,你会想写

    @Override
    public int getItemCount() {
        return mDataSource.size() + mImageUrls.size();
    }
    

    2-返回mDataSource的大小

    通常情况下,您有多个大小相同的列表,每个列表只包含您希望在每行中向用户显示的数据的一部分。也许mDataSource是一个包含20张专辑的列表,包括艺术家、歌曲名称等。也许mImageUrls是一个包含20个字符串的列表,每个字符串都是专辑封面的艺术

    在这种情况下,您只需返回这些列表中任何一个的大小(因为它们都是相等的):

    @Override
    public int getItemCount() {
        return mDataSource.size();
    }
    

    然后,在onBindViewHolder()方法中,可以从每个列表中提取所需的数据:

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Object albumInfo = mDataSource.get(position);
        String albumCoverUrl = mImageUrls.get(position);
        ...
    }
    
  2. # 2 楼答案

    每个方法只能有一个return语句。您需要有两个单独的方法来返回单独的值,或者将这些值放入数据结构并返回数据结构

    所以你可以这样做:

    public int getDataSourceCount() {
       return mDataSource.size();
    }
    public int getImageCount() {
       return mImageURL.size();
    }