Rxjava中toList操作符

来源:互联网 发布:exjia商城源码 编辑:程序博客网 时间:2024/05/19 19:33
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: jack05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: ann05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: one05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: two05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: three05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: four05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: onNext05-18 10:42:10.210 12541-12541/com.robot.rxjavaandretrofit E/toListTest: onCompleted

总结:可以看到这里讲String[] 数组类型转化为List类型了,toList()操作符的目的应该是将所有的数据放进一个List中去,然后将这个List传递给这里的subscribe。


还要注意一点这里的这里无需主动调用onNext()和onCompleted()就可以回调到subscribe的onNext()和onCompleted()。

0 0