Я только начал с RxJava и RxAndroid и работал с в этом базовом примере .У меня возникли проблемы с последней частью, где я подписываюсь на заметку, которой является этот код.
subscription = GithubClient.getInstance()
.getStarredRepositories(userName)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<GithubRepo>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(List<GithubRepo> githubRepos) {
githubRepoAdapter.setGithubRepos(githubRepos);
}
});
Я не знаю, устарел ли учебник или я что-то не так делаю.Я думал, что это может быть мне, потому что мой импорт неправильный, но я попробовал их все, и ни один не работает.Это импорт для этого кода.
import io.reactivex.android.schedulers.AndroidSchedulers;
import rx.Observer;
import rx.Subscription;
import rx.schedulers.Schedulers;
Я также пробовал это:
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import rx.Subscription;
Но тогда наблюдатель должен реализовать различные методы:
subscription = GithubClient.getInstance()
.getStarredRepositories(userName)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<GithubRepo>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(List<GithubRepo> githubRepos) {
githubRepoAdapter.setGithubRepos(githubRepos);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
С этим кодом я получаю ошибку Required: rx.Subscription, Found: void
Соответствующие зависимости:
implementation 'io.reactivex.rxjava2:rxjava:2.2.6'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.5.0'