初识rxAndroid

xiaoxiao2021-02-28  142

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);

转载请注明原文地址: https://www.6miu.com/read-19829.html

最新回复(0)