答案 0 :(得分:2)
每个方法只能有一个return
语句。您要么需要两个单独的方法来返回单独的值,要么将这些值放入数据结构中并返回数据结构
因此您可以执行以下操作:
public int getDataSourceCount() {
return mDataSource.size();
}
public int getImageCount() {
return mImageURL.size();
}
答案 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);
...
}