RxJava练习(3)--跳过与截取

本例主要讲skip和take的使用
还是练习2的代码,只不过需要跳过前2个,从第三个开始显示
代码如下:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TextView text = (TextView) findViewById(R.id.text);
        List<String> list = Arrays.asList("hi", "hello", "hey", "ha", "hoo");
        Observable.interval(2, 2, TimeUnit.SECONDS)
//               .skip(2)
                .take(list.size())
                .skip(2)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Long>() {
                    @Override
                    public void onCompleted() {
                        Toast.makeText(MainActivity.this, "Complete", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Long l) {
                        text.setText(list.get(l.intValue()));
                    }
                });
    }
}

请注意skip放到take之前和之后的区别。
放到take之前,complete的toast不会显示。
放到take之后,complete的toast会显示。

take的解释

public final Observable take(int num)
Returns an Observable that emits only the first num items emitted by the source Observable.
返回一个Observable对象,该对象只会释放从源Observable对象释放的前num个事件。

对应java的代码:

count = 0;
while (count < 5) {
    text.settext(list.get(count))
    count++;
}

take的描述

skip的解释

public final Observable skip(int num)
Returns an Observable that skips the first num items emitted by the source Observable and emits the remainder.
返回一个Observable对象,该对象会跳过源Observable对象释放的前num个对象,然后释放剩余的

对应的java代码:

count = 0;
while (count < 5) {
    if (count < 2) continue;
    text.settext(list.get(count))
    count++;
}

skip的描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值