尝试调用getItemCount()两次时出现java不可访问语句 1 年,4 月 Questions & Answers 77 我试图给getItemCount()打两次电话,但得到了一个无法联系到的声明。知道如何返回两个计数而不出现以下问题吗
# 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 楼答案 每个方法只能有一个return语句。您需要有两个单独的方法来返回单独的值,或者将这些值放入数据结构并返回数据结构 所以你可以这样做: public int getDataSourceCount() { return mDataSource.size(); } public int getImageCount() { return mImageURL.size(); }
# 1 楼答案
该
getItemCount()
方法是适配器计算要向用户显示多少项(行)的方法。绝对要求您仅从该方法返回一个int
值,并且该值是您希望用户能够看到的项目数鉴于你最初的问题显示你在使用两个列表,你似乎应该做两件事中的一件:
1-返回两个大小的总和
也许你是想说你的recyclerview应该显示所有的数据源项,然后显示所有的图像项。在这种情况下,你会想写
2-返回mDataSource的大小
通常情况下,您有多个大小相同的列表,每个列表只包含您希望在每行中向用户显示的数据的一部分。也许
mDataSource
是一个包含20张专辑的列表,包括艺术家、歌曲名称等。也许mImageUrls
是一个包含20个字符串的列表,每个字符串都是专辑封面的艺术在这种情况下,您只需返回这些列表中任何一个的大小(因为它们都是相等的):
然后,在
onBindViewHolder()
方法中,可以从每个列表中提取所需的数据:# 2 楼答案
每个方法只能有一个
return
语句。您需要有两个单独的方法来返回单独的值,或者将这些值放入数据结构并返回数据结构所以你可以这样做: