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( ... ));
我从数据库下载项目列表,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( ... ));