Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回列表<;字符串>;从可观察到<;列表<;字符串>&燃气轮机;_Java_Android_Rx Java_Rx Android - Fatal编程技术网

Java 返回列表<;字符串>;从可观察到<;列表<;字符串>&燃气轮机;

Java 返回列表<;字符串>;从可观察到<;列表<;字符串>&燃气轮机;,java,android,rx-java,rx-android,Java,Android,Rx Java,Rx Android,我从DB下载项目列表,它返回可观察的: 然后我想做一些操作(例如,take(2))并通过RecyclerView屏幕上的适配器设置这个排序列表 我该怎么做?我能把这个可观察的转换成列表吗?编辑:通过阅读问题的评论,我意识到我的答案缺少一些信息。如果getColorListRx()返回Observable,则无需使用Observable.just()创建另一个Observable。这将创建一个可观察的,这可能是您不想要的。您可以直接使用getColorListRx()进行如下操作: getColo

我从DB下载项目列表,它返回
可观察的

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


我该怎么做?我能把这个
可观察的
转换成列表吗?

编辑:通过阅读问题的评论,我意识到我的答案缺少一些信息。如果
getColorListRx()
返回
Observable
,则无需使用
Observable.just()
创建另一个
Observable
。这将创建一个
可观察的
,这可能是您不想要的。您可以直接使用
getColorListRx()
进行如下操作:

getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ))
getColorsListRx().flatMap(list -> Observable.from(list)).take(2).toList().subscribe(colorsList -> mSimpleStringAdapter.setList( ... )) .
第二次编辑:如果需要从列表中获取前两项(
take(2)
),则始终可以执行平面映射操作,将
Observable
的结果转换为
Observable
,将前两项转换回
Observable
,如下所示:

getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ))
getColorsListRx().flatMap(list -> Observable.from(list)).take(2).toList().subscribe(colorsList -> mSimpleStringAdapter.setList( ... )) .

编辑:通过阅读问题的评论,我意识到我的答案遗漏了一些信息。如果
getColorListRx()
返回
Observable
,则无需使用
Observable.just()
创建另一个
Observable
。这将创建一个
可观察的
,这可能是您不想要的。您可以直接使用
getColorListRx()
进行如下操作:

getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ))
getColorsListRx().flatMap(list -> Observable.from(list)).take(2).toList().subscribe(colorsList -> mSimpleStringAdapter.setList( ... )) .
第二次编辑:如果需要从列表中获取前两项(
take(2)
),则始终可以执行平面映射操作,将
Observable
的结果转换为
Observable
,将前两项转换回
Observable
,如下所示:

getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ))
getColorsListRx().flatMap(list -> Observable.from(list)).take(2).toList().subscribe(colorsList -> mSimpleStringAdapter.setList( ... )) .
创建发射给定项的可观察对象。这意味着
Observable.just(getColorListRx())
返回
Observable
。由于
getColorListRx
已经返回了一个可观察值,因此您不需要用
将其包装起来,只需使用

getColorListRx().take(2).subscribe(colorsList -> mSimpleStringAdapter.setList( ... ));
创建发射给定项的可观察对象。这意味着
Observable.just(getColorListRx())
返回
Observable
。由于
getColorListRx
已经返回了一个可观察值,因此您不需要用
将其包装起来,只需使用

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

getColorLitsRx
的返回类型是什么?请向我们显示其签名。它返回Observable您希望通过
take(2)
实现什么?运算符take(int n)只发出Observable发出的前n项
getColorLitsRx
的返回类型是什么?请给我们看一下它的签名。它返回observeable您想用
take(2)
实现什么?运算符take(int n)只发出由Observable@miensol但是运算符take()不起作用。这段代码返回的列表与我输入的相同。我想你真正想要的是从列表中获取两个项目,而不是可观察的项目。您始终可以执行平面映射操作,将可观测的结果转换为可观测的,获取前两项,然后将其转换回可观测的可观测。从(列表)).take(2).toList().subscribe(colorsList->mSimpleStringAdapter.setList(…)
。我可以编辑答案以包含此行为。@miensol但运算符take()不起作用。这段代码返回的列表与我输入的相同。我想你真正想要的是从列表中获取两个项目,而不是可观察的项目。您始终可以执行平面映射操作,将可观测的结果转换为可观测的,获取前两项,然后将其转换回可观测的可观测。从(列表)).take(2).toList().subscribe(colorsList->mSimpleStringAdapter.setList(…)
。我可以编辑答案以包含此行为。