RxJava 2可观察而无需依赖

时间:2019-01-31 06:11:27

标签: android retrofit2 rx-java2

我有2个返回arraylist的服务:

Observable = api.getCategories(); 可观察= api.getProdutcs();

如何使用RxJava执行两个服务?两个服务都没有扩展/依赖

完成2个服务后,我想通知RV类别和RV产品的适配器

3 个答案:

答案 0 :(得分:0)

  

将此方法称为youradapterintance.notifyDataSetChanged();,如果要调用Web服务并在onCreate中设置适配器,则必须使用事件总线,一旦数据集更改,则在onEventRecieve方法上设置适配器。

答案 1 :(得分:0)

如果您的api.getCategories()api.getProdutcs()返回不同的类型,则可以先执行第二个可观察的订阅:

api.getCategories()
 .subscribe(categories -> api.getProdutcs().subscribe(products -> //Here notify your lists ))

或者您可以尝试使用zip运算符:

Observable
    .zip(api.getCategories(), api.getProdutcs(), (categories, products) -> //Here you need to define type of return value )
    .subscribe(yourObject ->//Here notify your lists );

答案 2 :(得分:0)

 Observable.zip(api.getCategories()
               ,api.getProdutcs(),
                BiFunction<List<Categories>, List<Product>, Pair<List<Categories>, List<Product>>> { t1, t2 -> Pair(t1, t2) })
  ).subscribeBy{
      it.first//List<Category> update the adapter for category
      ir.second //List<Product> update the adapter for product

}