1
0
mirror of https://github.com/yexuejc/rrxjava.git synced 2025-12-26 04:39:34 +08:00
This commit is contained in:
2017-07-07 15:50:45 +08:00
commit c595467e6f
105 changed files with 3161 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
package com.yexue.android.rrxjava;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import rx.Observable;
import rx.Subscriber;
import rx.functions.Action0;
import rx.functions.Action1;
public class ActionActivity extends AppCompatActivity {
private static String log = "ActionActivityLOG";
Button action_btn1, action_btn2, action_btn3;
Observable<String> observable;
Action0 onCompletedAction;
Action1<Throwable> onErrorAction;
Action1<String> onNextAction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action);
action_btn1 = (Button) findViewById(R.id.action_btn1);
action_btn2 = (Button) findViewById(R.id.action_btn2);
action_btn3 = (Button) findViewById(R.id.action_btn3);
method1();
action_btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 自动创建 Subscriber ,并使用 onNextAction 来定义 onNext()
observable.subscribe(onNextAction);
}
});
action_btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 自动创建 Subscriber ,并使用 onNextAction 和 onErrorAction 来定义 onNext() 和 onError()
observable.subscribe(onNextAction, onErrorAction);
}
});
action_btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 自动创建 Subscriber ,并使用 onNextAction、 onErrorAction 和 onCompletedAction 来定义 onNext()、 onError() 和 onCompleted()
observable.subscribe(onNextAction, onErrorAction, onCompletedAction);
}
});
}
/**
* 除了 subscribe(Observer) 和 subscribe(Subscriber)
* subscribe() 还支持不完整定义的回调RxJava 会自动根据定义创建出 Subscriber 。形式如下:
*/
private void method1() {
//onNext
onNextAction = new Action1<String>() {
@Override
public void call(String s) {
Log.d(log, s);
}
};
//onError
onErrorAction = new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
Log.d(log, throwable.getMessage());
}
};
//onCompleted
onCompletedAction = new Action0() {
@Override
public void call() {
Log.d(log, "onCompletedAction");
}
};
observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("he");
subscriber.onCompleted();
//TODO 未执行onErrorAction原因未知
int a[] = {1, 3, 5, 6, 5, 4, 54, 8, 4};
Log.d(log, a[100] + "");
}
});
}
}