public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toListTest();
}
});
}
/**
* 测试toList操作符
*/
private void toListTest() {
String[] strs = new String[] {"jack", "ann", "one", "two", "three", "four"};
Observable.from(strs)
.toList()
.subscribe(new Subscriber<List<String>>() {
@Override
public void onNext(List<String> names) {
for (String name : names) {
Log.e("toListTest", name);
}
Log.e("toListTest", "onNext");
}
@Override
public void onCompleted() {
Log.e("toListTest", "onCompleted");
}
@Override
public void onError(Throwable e) {
Log.e("toListTest", "onError");
}
});
}
}
打印输出:
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: jack
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: ann
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: one
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: two
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: three
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: four
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: onNext
05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: onCompleted
总结:可以看到这里讲String[] 数组类型转化为List类型了,toList()操作符的目的应该是将所有的数据放进一个List中去,然后将这个List传递给这里的subscribe。
还要注意一点这里的这里无需主动调用onNext()和onCompleted()就可以回调到subscribe的onNext()和onCompleted()。