从Observable返回List <string> <list <string>&gt;

时间:2016-09-07 09:57:14

标签: java android rx-java rx-android

我从DB下载项目列表,它返回Observable<List<String>>

Observable.just(getColorListRx()).take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ));

然后我想做一些操作(即.take(2))并在RecyclerView的屏幕上通过适配器设置这个排序列表。

我该怎么做?我能以某种方式将此Observable<List<String>>转换为列表吗?

2 个答案:

答案 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( ... ));