5

I have an Observable in my oncreate and I want to get the results on my main thread. But since The AndroidScheduler.mainThread works with just Java Observable, I am unable to compile it. Here's the code

val L=List(1,2,3)
val a=Observable.from(L).observeOn(AndroidSchedulers.mainThread()).subscribe(i=>println(i))

Here 'a' is a rx.scala.lang Observable. And this is the compile time error I am getting

 Error:(38, 70) type mismatch;
 found   : rx.Scheduler
 required: rx.lang.scala.Scheduler
 val a=Observable.from(L).observeOn(AndroidSchedulers.mainThread()).subscribe(i=>println(i))
                                                                 ^

Please help in solving this.

user2730066
  • 133
  • 5

1 Answers1

5

The JavaConversions class contains the method you need to convert from a "Java Scheduler" (the rx.Scheduler) to a "Scala Scheduler" (the rx.lang.scala.Scheduler) - javaSchedulerToScalaScheduler:

val a=Observable.from(L)
        .observeOn(JavaConversions.javaSchedulerToScalaScheduler(AndroidSchedulers.mainThread()))
        .subscribe(i=>println(i))
Adam S
  • 16,144
  • 6
  • 54
  • 81