Return 来自 Observable<List<String>> 的列表<String>

Return List<String> from Observable<List<String>>

我从数据库下载项目列表,returns Observable<List<String>>:

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

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

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

编辑:通过阅读问题的评论,我意识到我的回答缺少一些信息。如果 getColorListRx() returns Observable<List<String>> 您不需要使用 Observable.just() 创建另一个 Observable。这将创建一个 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( ... )) .

Observable.just 创建一个发出给定项目的可观察对象。这意味着 Observable.just(getColorListRx()) returns Observable<Observable<List<String>>>。由于 getColorListRx 已经 returns 一个可观察对象,因此您不需要用 just:

包装它
getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ));