Android RxAndroid使用

2204 ワード

に頼る
compile 'io.reactivex:rxjava:1.1.0'
compile 'io.reactivex:rxandroid:1.1.0+'

RxAndroidはオブザーバー、購読者モードです
簡単な任務をして、ボタンをクリックして、データは絶えず増加して、同期して2つのテキストの上で表示します
package com.example.administrator.retrofitandrxandroid;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import rx.Observable;
import rx.Subscriber;
import rx.Subscription;

public class Main2Activity extends Activity {
    private static final String TAG = "tag";
    Observable observable;
    Subscriber subscriber;
    TextView text1;
    TextView text2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        text1 = (TextView) findViewById(R.id.textView);
        text2 = (TextView) findViewById(R.id.textView2);

        subscriber = new Subscriber() {
            @Override
            public void onCompleted() {
                Log.e("tag", "testFirst:onCompleted");
            }
            @Override
            public void onError(Throwable e) {
            }
            @Override
            public void onNext(String s) {
                Log.v(TAG, "onNext:" + s);
                text1.setText(s);
                text2.setText(s);
            }
        };
    }
    int index = 0;
    public void add(View v){
        index++;
        observable= Observable.create(new Observable.OnSubscribe() {
            @Override
            public void call(Subscriber super String> subscriber) {
                subscriber.onNext(index + "");
                subscriber.onCompleted();
            }
        });
        observable.subscribe(subscriber);
    }

}

これを見ると、例えばlistviewが浮遊し、一般的には外部のビューに状態の変化があれば、内部のビューにも同じ状態の変化があるべきで、このように内外部のビューの切り替え時に、効果を同期することができ、
これにより、変更するビューイベント(クリック効果やデータの更新など)にイベントのパブリケーションを追加し、listviewのhenadviewビューと外部に隠されたビューを同期更新することができる.