Android 如何在RxJava中创建可观察对象列表?

Android 如何在RxJava中创建可观察对象列表?,android,rx-java,rx-android,reactivex,Android,Rx Java,Rx Android,Reactivex,我有一个API,它给了我一个ID列表。我需要使用这些ID发出另一个网络请求,以获取它们各自项目的详细信息。一旦我得到了所有的细节,我就需要把它们放在一个列表中 下面是一个例子。发出网络请求,获取ID列表,比如 一,二,三,四,五 现在我需要对这5个ID分别提出5个请求 然后,一旦我得到all的响应,我需要创建一个列表,用于填充RecyclerView 如果需要更多信息,请告诉我。我不熟悉反应式编程。可观察链的结构大致如下: 初始网络请求 从结果中提取列表 不可数 concatmapanger可

我有一个API,它给了我一个ID列表。我需要使用这些ID发出另一个网络请求,以获取它们各自项目的详细信息。一旦我得到了所有的细节,我就需要把它们放在一个列表中

下面是一个例子。发出网络请求,获取ID列表,比如

一,二,三,四,五

现在我需要对这5个ID分别提出5个请求

然后,一旦我得到all的响应,我需要创建一个列表,用于填充RecyclerView


如果需要更多信息,请告诉我。我不熟悉反应式编程。

可观察链的结构大致如下:

  • 初始网络请求
  • 从结果中提取列表
  • 不可数

  • concatmapanger可观察链的结构大致如下:

    • 初始网络请求
    • 从结果中提取列表
    • 不可数

    • concatmapagenger伪代码:Observable.from(listOfIds).flatMap(返回请求(id)).toList()

      伪代码:Observable.from(listOfIds).flatMap(返回请求(id)).toList()

      如果您只想接收包含列表的1个发射:使用
      Observable.just(1,2,3,4,5)


      如果您希望接收5个发射,每个发射包含一个数字:使用
      Observable.from(1,2,3,4,5)

      如果您只想接收一个包含列表的发射:使用
      可观察。仅(1、2、3、4、5)


      如果您希望接收5个发射,每个发射包含一个数字:使用
      Observable.from(1,2,3,4,5)

      假设您有一个可观察的源:

      Observable<Integer> source;
      
      你是这样写的:

      source
        .flatMap( i -> Observable.fromCallable( id -> getLongFromIdViaNetwork( id ) ) )
        .toList()
        .subscribeOn( backgroundScheduler )
        .observeOn( foregroundScheduler )
        .subscribe( listOfLongs -> {} );
      

      其中
      backgroundScheduler
      foreggroundscheduler
      适合我们的环境。

      假设您有一个可观察的源:

      Observable<Integer> source;
      
      你是这样写的:

      source
        .flatMap( i -> Observable.fromCallable( id -> getLongFromIdViaNetwork( id ) ) )
        .toList()
        .subscribeOn( backgroundScheduler )
        .observeOn( foregroundScheduler )
        .subscribe( listOfLongs -> {} );
      

      其中
      backgroundScheduler
      foreggroundscheduler
      适合我们的环境。

      结果列表应该包含什么?你能提供一些代码(数据类)吗?结果列表应该包含什么?你能提供一些代码(数据类)吗?