我从DB下载项目列表,它返回Observable<List<String>>
:
Observable.just(getColorListRx()).take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ));
然后我想做一些操作(即.take(2))并在RecyclerView的屏幕上通过适配器设置这个排序列表。
我该怎么做?我能以某种方式将此Observable<List<String>>
转换为列表吗?
答案 0 :(得分:0)
getColorListRx()
返回Observable<List<String>>
,您无需使用Observable
创建另一个Observable.just()
。这将创建一个你可能不想要的Observable<Observable<List<String>>>
。您可以直接使用getColorListRx()
进行操作:
getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ))
第二次编辑:如果您需要从列表中抓取前两项(take(2)
),您始终可以执行flatMap操作将Observable<List<String>>
的结果转换为Observable<String>
,前两项,并将其转换回Observable<List<String>>
,如下所示:
getColorsListRx().flatMap(list -> Observable.from(list)).take(2).toList().subscribe(colorsList -> mSimpleStringAdapter.setList( ... )) .
答案 1 :(得分:0)
Observable.just
创建一个发出给定项目的observable。这意味着Observable.just(getColorListRx())
会返回Observable<Observable<List<String>>>
。由于getColorListRx
已经返回了一个可观察对象,因此您不需要使用just
包裹它:
getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ));