首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将两个不同的apis响应逐个加载到一个recylverview中?

如何将两个不同的apis响应逐个加载到一个recylverview中?
EN

Stack Overflow用户
提问于 2018-07-27 08:21:38
回答 2查看 327关注 0票数 2

我想在同一个回收器视图中加载来自两个不同API的响应,但第一个API中的第一个项目和第二个项目中的第一个项目再次相同,第三个项目中的第四个项目和第二个API中的第二个项目相同,如下所示。

第一个应用程序接口中的两个项目,第二个应用程序接口中的一个项目,我想要加载到recylerview中。我什么都不知道。请帮帮我。我知道简单地将两个API响应加载到recylerview中是很简单的,

如果我们全局声明ArrayList意味着我们可以添加两个响应,但是这个场景是不同的。请给出一些想法。

EN

回答 2

Stack Overflow用户

发布于 2018-07-27 08:56:59

我想解决你问题的最好方法是为你的RecyclerView建立一个模型。因此,通过这种方式,您可以创建单个列表项,然后将其提供给适配器。然后使用一个类型(或类似的东西)来决定在回收器视图中显示哪种类型。

由于您没有提供任何代码,因此我将从我的头顶提供一个示例!:

回收器视图模型:

代码语言:javascript
运行
AI代码解释
复制
public class RecyclerViewModel{

    public static final int RESPONSE_ONE_ITEM_TYPE = 1;
    public static final int RESPONSE_TWO_ITEM_TYPE = 2;

    private final ResponseModel1 item1;
    private final ResponseModel2 item2;
    private final int type;

    //remember to pass only one item and keep the other one null
    public RecyclerViewModel(ResponseModel1 item1, ResponseModel2 item2, int type) {
        this.item1 = item1;
        this.item2 = item2;
        this.type = type;
    }


    public ResponseModel1 getItem1() {
        return item1;
    }

    public ResponseModel2 getItem2() {
        return item2;
    }

    public int getType() {
        return type;
    }
}

回收器视图更新程序看起来应该类似于:

代码语言:javascript
运行
AI代码解释
复制
public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{

    private final List<RecyclerViewModel> items;

    public Adapter(List<RecyclerViewModel> items) {
        this.items = items;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if (viewType == RecyclerViewModel.RESPONSE_ONE_ITEM_TYPE)
        return new ApiResponse1ViewHolder();
        else {
            return new ApiResponse2ViewHolder();
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        if (getItemViewType(position) == RecyclerViewModel.RESPONSE_ONE_ITEM_TYPE){
            //bind the api response one item view holder
            items.get(position).item1
        }else{
            //bind the api response two item view holder
            items.get(position).item2
        }
    }

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

    @Override
    public int getItemViewType(int position) {
        return items.get(position).type;
    }
}

希望它能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2018-07-27 17:18:35

创建一个具有两个ArrayList的DataAll类。

代码语言:javascript
运行
AI代码解释
复制
DataAll{ 
     ArrayList<dataType> data1;
     ArrayList<dataType> data2;

     Public dataType getDataAtPos1(int pos){
               return data1.get(pos);
     }

     public dataType getDataAtPos2(int pos){
               return data2.get(pos);
     }

     public int getSize(){
               return data2.size()+data1.size();
      }
}

我把更多的事情留给你。现在,在您的RecyclerView适配器内部有一个存储数据的DataAll对象,并在onBindViewHolder方法中执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
onBindViewHolder(MyViewHolder holder, int position){ 
       dataType currentData;
        if(position+1 %3 == 0){
                 currentData = dataAll.getDataAtPos2((position+1)/3 - 1);
        }
        else{
                  currentData = dataAll.getDataAtPos1(position - (position/3));
        }
    }

现在使用currentData填充您的ui。对任何进一步查询的注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51553802

复制
相关文章
flutter - 如何在 ListView 构建器中显示特定索引中的项目 原文 标签 flutter dart
我想开始显示索引5中的列表项 ListView.builder( itemCount: items.length, itemBuilder: (context, index) { return ListTile( title: Text('${items[index]}'), ); }, ); 最佳答案 看一下这个 ListView.builder( itemCount: items.length, itemBuilder: (context, index) { if(index < 5
徐建国
2021/08/30
6.7K0
如何在AI Studio数据可视化图像中显示汉字
AI Studio是一个非常好用的数据科学在线实验平台,不论是教学、学习还是开发,都可以使用。但是,下面的缺憾未免成为了珍珠上的一点瑕疵。
老齐
2020/05/15
3.5K0
如何在AI Studio数据可视化图像中显示汉字
图像相似度比较和检测图像中的特定物
对普通人而言,识别任意两张图片是否相似是件很容易的事儿。但是从计算机的角度来识别的话,需要先识别出图像的特征,然后才能进行比对。在图像识别中,颜色特征是最为常见的。每张图像都可以转化成颜色分布直方图,如果两张图片的直方图很接近,就可以认为它们很相似。这有点类似于判断文本的相似程度。
fengzhizi715
2018/08/24
2.9K0
图像相似度比较和检测图像中的特定物
如何在VimVi中显示行号
Vim/Vi是许多软件开发人员和Linux系统管理员首选的文本编辑器。 默认情况下,Vim不显示行号,但可以轻松打开它们。Vim支持三种行编号模式,可帮助你浏览文件。除了标准的绝对行编号之外,Vim还支持相对行和混合行编号模式。 绝对行号 绝对行号是标准行号,它在每行文本旁边显示适当的行号。 要激活行编号,请设置数字标志: 按Esc键切换到命令模式。 按:(冒号),光标将移动到屏幕的左下角。输入set number或set nu,然后按Enter。 :set number 行号将显示在屏幕的左侧: 要禁用
入门笔记
2022/06/02
3.8K0
Unity WebView 插件⭐️(十五)特定模块 WebGL网页视图—WebGLWebView
上一篇文章对3D WebView 插件的 UwpWebView 做了一个详细的介绍说明
呆呆敲代码的小Y
2021/09/26
9390
jq 控制显示隐藏div
之前一直使用attr("style","display:none;")来隐藏div
用户1215037
2021/09/22
12.5K0
[1097]DIV的显示与隐藏
*********************div的显示和隐藏************************************
周小董
2022/04/13
5.4K0
WebView显示图片适配屏幕宽度
图片直接就是标签出来的,还是一张巨大的图片,直接导致webview加载只有截取了屏幕大小的宽度,看不到整张图片,测试要求适配屏幕宽度。于是有了这篇博客记录一下,在Webview的setWebViewClient()方法中WebViewClient中在加载完网页后执行一个JavaScript方法,这个JavaScript方法将所有网页中图片的宽度设置为屏幕显示宽度。
1025645
2018/08/23
1.7K0
高斯反向投影实现检测图像中的特定物
在图像处理中,我们通常需要设置感兴趣的区域(ROI,region of interest),来简化我们的工作。也就是从图像中选择的一个图像区域,这个区域是我们图像分析所关注的重点。
fengzhizi715
2018/08/24
4670
高斯反向投影实现检测图像中的特定物
如何使特定的数据高亮显示?
当表格里数据比较多时,很多时候我们为了便于观察数据,会特意把符合某些特征的数据行高亮显示出来。这不,公司的HR小姐姐就有这个需求,说她手头上有一份招聘数据,她想把“薪水”超过20000的行突出显示出来,应该怎么操作呢?
猴子聊数据分析
2020/02/26
5.9K0
Confluence 如何在页面中显示目录
在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。
HoneyMoose
2021/12/14
2.1K0
Confluence 如何在页面中显示目录
在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。
HoneyMoose
2022/01/11
2.6K0
Confluence 如何在页面中显示目录
OpenCV中图像的读取,显示与保存
相关函数:cv2.imread()、cv2.imshow()、cv2.imwrite()
py3study
2020/01/19
3.1K0
opencv显示图像
如果说我们在些项目的过程中会频繁的查看我们的图片,我们就可以直接给它封装一个方法:
淼学派对
2023/10/14
2740
opencv显示图像
如何使用几何画板画函数图像,如极坐标函数图像?
1、点击[绘图] 2、点击[网格样式] 3、点击[极坐标网格] 4、点击[绘图] 5、点击[绘制新函数] 6、点击[3] 7、点击[函数] 8、点击[cos] 9、点击[θ] 10、点击[确定] 11、点击[是]
裴来凡
2022/05/28
1.4K0
如何使用几何画板画函数图像,如极坐标函数图像?
Linux小技巧:如何在 Vim 中显示行号?
Vim 是一款出色的编辑器,大多数 Linux/UNIX 系统管理员每天都喜欢并使用它。
网络技术联盟站
2022/03/02
11.7K0
Linux小技巧:如何在 Vim 中显示行号?
如何用Python提取指定文档中的特定字符并加粗显示?
想把从网络上找来的文章(另存为new.docx或者new.html)与高考词汇表(另存为vocabulary.docx或者vocabulary.html)进行比对后,网络文章里的词汇为高考考纲词汇的,则加粗显示。
9135621
2020/04/23
8.7K1
如何用Python提取指定文档中的特定字符并加粗显示?
点击加载更多

相似问题

Cocoa Webview -仅显示特定的<div>

12

如何在webview特定页面上添加粘性页脚,如可点击的图像

10

如何在android webview中显示图像

17

在android Webview的Html中显示特定div内容

10

显示div中特定图像的数量

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档