Android 如何跳过observable中的当前项并转到列表中的下一项?

Android 如何跳过observable中的当前项并转到列表中的下一项?,android,rx-java,Android,Rx Java,我有一个显示问题的测验应用程序,每个问题都有一个倒计时计时器,它可以完美地工作,但我想知道一旦用户单击按钮,如何发出列表中的下一项。 下面是我模拟从api获取问题的代码 questionObservable = repository.getQuestionsfromlocal() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())

我有一个显示问题的测验应用程序,每个问题都有一个倒计时计时器,它可以完美地工作,但我想知道一旦用户单击按钮,如何发出列表中的下一项。 下面是我模拟从api获取问题的代码

  questionObservable =  repository.getQuestionsfromlocal()
             .subscribeOn(Schedulers.io())
             .observeOn(AndroidSchedulers.mainThread())

             .concatMap(s -> {

                 if (s.getQuestion().equals("first")){
                     previousquestion_time.setValue(s.getDuration());

                     return Observable.just(s).delay(0, TimeUnit.SECONDS , AndroidSchedulers.mainThread());

                 }else{

                     return Observable.just(s).delay(previousquestion_time.getValue(), TimeUnit.SECONDS , AndroidSchedulers.mainThread());


                 }


             });


     questionObserve = new Observer<Question>() {
         @Override
         public void onSubscribe(@NonNull Disposable d) {

         }

         @Override
         public void onNext(@NonNull Question question) {
             singlequestion.setValue(question);
             previousquestion_time.setValue(question.getDuration());
         }

         @Override
         public void onError(@NonNull Throwable e) {

         }

         @Override
         public void onComplete() {

         }
     };
questionObservable=repository.getQuestionsfromlocal()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.concatMap(s->{
如果(s.getQuestion().equals(“first”)){
上一个问题_time.setValue(s.getDuration());
返回Observable.just.delay(0,TimeUnit.SECONDS,AndroidSchedulers.mainThread());
}否则{
返回Observable.just.delay(前面的问题_time.getValue(),TimeUnit.SECONDS,AndroidSchedulers.mainThread());
}
});
questionObserve=新观察者(){
@凌驾
订阅时的公共无效(@NonNull-d){
}
@凌驾
public void onNext(@NonNull-Question-Question){
设置值(问题);
上一个问题\u time.setValue(问题.getDuration());
}
@凌驾
公共无效onError(@NonNull可丢弃e){
}
@凌驾
未完成的公共空间(){
}
};
这段代码以可观察的形式返回我的问题列表。从可迭代开始,然后我使用concat map根据前面的问题答案持续时间为每个问题提供一定的延迟

它自动工作没有问题


我需要的是,当我点击一个按钮时,它会跳过当前元素,转到下一个元素并继续流程。

如果我们看到一些代码,会更容易。我想有几种方法可以做到这一点,你的observable会给你一个列表。只需创建计数器变量,在单击时递增它,并将列表中的下一个元素置于计数器位置。@Fred我现在编辑了我的问题