2 回答
TA贡献1854条经验 获得超8个赞
return每个方法只能有一个语句。您要么需要有两个单独的方法来返回单独的值,要么将这些值放在一个数据结构中并返回数据结构
所以你可以这样做:
public int getDataSourceCount() {
return mDataSource.size();
}
public int getImageCount() {
return mImageURL.size();
}
TA贡献1828条经验 获得超3个赞
该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);
...
}
添加回答
举报