王學崗RxJava(二)
阿新 • • 發佈:2019-02-01
我們上面一個簡歷很簡單吧!
我們把上一個例子修改下
package com.tz.architect.rxjava.simple.android.simple3;
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
import rx.Observer;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.tz.architect.rxjava.simple.android.R;
public class RxJavaSimple3 extends Activity {
private Observable<String> observableString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple2);
List<String> items = new ArrayList<String>();
items.add("Dream");
items.add("迷離同學");
items.add("陳國軍同學");
items.add("Michael同學");
// 框架本身提供了這樣的API
// from: 一旦當你有觀察者註冊,立馬傳送訊息序列
// 框架內部實現
// 框架內部呼叫create方法
// 迭代器模式
// OnSubscribeFromIterable類專門用於遍歷集合
// OnSubscribeFromArray類專門用於遍歷陣列
observableString = Observable.from(items);
}
public void click(View v) {
observableString.subscribe(new Observer<String>() {
@Override
public void onCompleted() {
Log.i("main", "---onCompleted---");
}
@Override
public void onError(Throwable e) {
System.out.println("Oh,no! Something wrong happened!");
}
@Override
public void onNext(String item) {
// 接受資料
Log.i("main", "觀察者接收到了資料: " + item);
}
});
}
}