RxAndroid操作符就是
对集合的操作
1.RxAndroid接收一个集合对象,对其中数据一个一个观察
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会根据集合的数量调用对应次数的subscriber.onNext方法,把集合中的数据一个一个输出
Observable.from(integers)
//被观察者一创建就指定了观察者,如此就不用在后面进行注册绑定了
//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<Integer>() {
@Overridepublic void call(Integer integer) {System.out.println("onNext : " + integer);
}
});
2.
RxAndroid
接收一个集合对象
,
对整个集合进行操作
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会把这个集合整个输出一次
Observable.just(integers)//被观察者一创建就指定了观察者,如此就不用在后面进行注册绑定了
//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<List<Integer>>() {@Overridepublic void call(List<Integer> integers) {System.out.println(integers);}
});
3.RxAndroid接收一个集合对象,对其中数据进行过滤
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会根据集合的数量调用对应次数的subscriber.onNext方法,把集合中的数据一个一个输出
Observable.from(integers)
//对集合数据进行过滤,只发送符合条件的事件
.filter(new Func1<Integer, Boolean>() {@Overridepublic Boolean call(Integer integer) {return integer < 4;}})//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<Integer>() {@Overridepublic void call(Integer integer) {System.out.println("onNext : " + integer);}
});
4.
RxAndroid接收一个集合对象,对其中数据进行转换
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会根据集合的数量调用对应次数的subscriber.onNext方法,把集合中的数据一个一个输出
Observable.from(integers)
//对集合数据进行转换,参数 1.代表了原数据类型(转换前) 2.代表了要转换最终结果的数据类型(转换后)
//提示:可以把流转换成bitmap,文件,String... 把String字符串或数据库Cursor转换为Bean类等
.map(new Func1<Integer, String>() {@Overridepublic String call(Integer integer) {return integer.toString();}})//如果用不到onError,onCompleted方法,就创建Action1 ,其中的call == onNext
.subscribe(new Action1<String>() {
@Overridepublic void call(String s) {System.out.println(s);}
});
5.RxAndroid把拿到的数个集合,进行拆分观察
//创建一个集合,并装上数据
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);List<Integer> integers1 = Arrays.asList(6, 7, 8);List<Integer> integers2 = Arrays.asList(9, 10);//创建被观察者,注意:这里不要用成java包下的,而是要用rx包下的类
//参数是一个集合,使用这种方式,会把这个集合整个输出一次
Observable.just(integers, integers1, integers2)//这里会输出3次,但经过修改要他发送10次
//这样使用,以后可以减少双层for循环
.flatMap(new Func1<List<Integer>, Observable<?>>() {
//将一个数据再转变为一个观察者
@Overridepublic Observable<?> call(List<Integer> integers) {return Observable.from(integers);}
})/* .subscribe(new Action1<List<Integer>>() {
@Overridepublic void call(List<Integer> integers) {System.out.println(integers);}
});*/.subscribe(new Action1<Object>() {
@Overridepublic void call(Object o) {System.out.println(o);}
});