我有2个返回arraylist的服务:
Observable = api.getCategories(); 可观察= api.getProdutcs();
如何使用RxJava执行两个服务?两个服务都没有扩展/依赖
完成2个服务后,我想通知RV类别和RV产品的适配器
答案 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
}