Android RxAndroid使用

依赖

compile 'io.reactivex:rxjava:1.1.0'
compile 'io.reactivex:rxandroid:1.1.0+'


RxAndroid是一个观察者,订阅者模式

做一个简单的任务,点击按键,数据不断增加,同步显示到两个文本上

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 subscriber) {
                subscriber.onNext(index + "");
                subscriber.onCompleted();
            }
        });
        observable.subscribe(subscriber);
    }

}



看到这就可以想起,比如listview做悬浮,一般的做法是外部的视图有状态的改变,那么内部的视图也应该有相同的状态改变,这样在内外部视图的切换时,能同步效果,

这样子就可以在改变的视图事件中(比如点击效果,或者是数据的更新),添加事件的发布,然后同步更新listview的henadview视图,以及外部隐藏的视图了.




你可能感兴趣的:(Android RxAndroid使用)