猿问

尝试调用 getItemCount() 两次时无法访问的语句

我试图打电话getItemCount()两次,但得到一个无法访问的声明。知道如何在不出现以下问题的情况下返回两个计数吗?


忽然笑
浏览 250回答 2
2回答

哔哔one

return每个方法只能有一个语句。您要么需要有两个单独的方法来返回单独的值,要么将这些值放在一个数据结构中并返回数据结构所以你可以这样做:public int getDataSourceCount() {   return mDataSource.size();}public int getImageCount() {   return mImageURL.size();}

倚天杖

该getItemCount()方法是适配器计算向用户显示多少项(行)的方法。绝对要求您只int从该方法返回一个值,并且该值是您希望用户能够看到的项目数。鉴于您的原始问题表明您正在使用两个列表,您似乎应该做以下两件事之一:1 - 返回两个尺寸的总和也许您想说您的 recyclerview 应该显示所有数据源项,然后显示所有图像项。在这种情况下,你想写@Overridepublic int getItemCount() {    return mDataSource.size() + mImageUrls.size();}2 - 返回 mDataSource 的大小通常情况下,您有多个相同大小的列表,每个列表仅包含您希望在每一行中向用户显示的部分数据。也许mDataSource是 20 张专辑的列表,包括艺术家、歌曲名称等。也许mImageUrls是 20 个字符串的列表,每个字符串都是专辑封面的艺术。在这种情况下,您可以只返回这些列表中的任何一个的大小(因为它们都是相等的):@Overridepublic int getItemCount() {    return mDataSource.size();}然后,在您的onBindViewHolder()方法中,您可以从每个列表中提取您需要的数据:@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {    Object albumInfo = mDataSource.get(position);    String albumCoverUrl = mImageUrls.get(position);    ...}
随时随地看视频慕课网APP

相关分类

Java
我要回答