初识rxAndroid

rxjava/rxandroid开发所需jar包:点击下载

依赖库:

compile 'com.jakewharton:butterknife:7.0.1'//注解
compile 'io.reactivex:rxandroid:1.1.0' // RxAndroid
compile 'io.reactivex:rxjava:1.1.0' // 推荐同时加载RxJava


1,操作基本数据类型:

//被观察者:

rx.Observable.OnSubscribe mOnSubscribeAction = new rx.Observable.OnSubscribe<String>() {

@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("这是一个字符串");//发送事件
subscriber.onNext("第二个");
subscriber.onCompleted();//完成事件必须写。
}
};

点击出发订阅者:

case R.id.btn1:
rx.Observable<String> observable = rx.Observable.create(mOnSubscribeAction);
//分发订阅信息
observable.observeOn(AndroidSchedulers.mainThread());
observable.subscribe(mTextSubscriber);//两个订阅者
observable.subscribe(mToastSubscriber);
break;

//我们的订阅者,用于操作

//创建两个订阅者
//1,控件订阅者
Subscriber<String> mTextSubscriber = new Subscriber<String>() {
@Override
public void onCompleted() {
System.out.println("mTextSubscriber:onCompleted");
}

@Override
public void onError(Throwable e) {
System.out.println("mTextSubscriber:onError");
e.printStackTrace();
}

@Override
public void onNext(String s) {

btn2.setText(s);
}
};


//2,吐司订阅者
Subscriber<String> mToastSubscriber = new Subscriber<String>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {
e.printStackTrace();
}

@Override
public void onNext(String s) {
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
}
};


2,操作集合:

初识集合数据:

private void initData() {
list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Map<String, String> map = new HashMap<>();
map.put("name", "我的名字" + i);
map.put("address", "我的地址" + i);
list.add(map);
}
}

调用:

Observable.from(list).map(new Func1<Map<String, String>, Map>() {

@Override
public Map<String, String> call(Map<String, String> stringStringMap) {
return stringStringMap;
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Map>() {
@Override
public void call(Map map) {
System.out.println(map.get("name"));
System.out.println(map.get("address"));
}
});

调用2:

创建订阅:

Subscriber<Map<String, String>> mapSubscriber = new Subscriber<Map<String, String>>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {

}

@Override
public void onNext(Map<String, String> stringStringMap) {
System.out.println("这里的姓名:" + stringStringMap.get("name"));
// Integer.parseInt("kkk");
}
};

调用订阅

Observable.from(list).map(new Func1<Map<String, String>, Map<String, String>>() {
@Override
public Map call(Map<String, String> stringStringMap) {
return stringStringMap;
}
}).subscribe(mapSubscriber);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值