2017-09-27 6 views
0

Je fais un exemple en utilisant RxAndroid comme indiqué ci-dessous dans le code. mais studio Android donne l'erreur suivante:Erreur lors de la création d'Observer dans RxAndroid

incompatible types 
required: io.reactivex.observable <String> 
found: void 

S'il vous plaît laissez-moi savoir comment corriger cette erreur

Code:

Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() { 
     @Override 
     public void subscribe(ObservableEmitter<String> e) throws Exception { 
      e.onNext("onNext"); 
      e.onComplete(); 

     } 
    }).subscribe(new Observer<String>() { 
     @Override 
     public void onSubscribe(Disposable d) { 

     } 

     @Override 
     public void onNext(String value) { 

     } 

     @Override 
     public void onError(Throwable e) { 

     } 

     @Override 
     public void onComplete() { 

     } 
    }); 

Répondre

0

Divisez la création et abonnez-vous dans différentes déclarations:

Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() { 
    @Override 
    public void subscribe(ObservableEmitter<String> e) throws Exception { 
     e.onNext("onNext"); 
     e.onComplete(); 

    } 
}); 

observable.subscribe(new Observer<String>() { 
    @Override 
    public void onSubscribe(Disposable d) { 

    } 

    @Override 
    public void onNext(String value) { 

    } 

    @Override 
    public void onError(Throwable e) { 

    } 

    @Override 
    public void onComplete() { 

    } 
}); 
+0

merci, mais je devrais le diviser ?? J'avais l'habitude d'utiliser une telle syntaxe, mais avec différents RxAndroid lib – user2121

+0

Lequel exactement? – akarnokd

+0

compiler 'io.reactivex: rxandroid: 1.2.1' compiler 'io.reactivex: rxjava: 1.1.9 – user2121