如何修复错误 - 无法解析方法 'subscribe(anonymous rx.functions.Action1<java.lang.boolean>)
How to fix error - cannot resolve method 'subscribe(anonymous rx.functions.Action1<java.lang.boolean>)
我更改了一些与 AndroidSchedulers
和 Observable
相关的 Rxjava 导入。当我这样做时,出现以下错误。
我不确定如何进行。
错误
这些是我在演示者中更改的导入。
import io.reactivex.Flowable;
//import rx.schedulers.Schedulers;
import io.reactivex.schedulers.Schedulers;
//import rx.Observable;
import io.reactivex.Observable;
//import rx.android.schedulers.AndroidSchedulers;
import io.reactivex.android.schedulers.AndroidSchedulers;
如图所示,这段代码有错误
public void setUserFocusChangeObservable(Observable<Boolean> observable) {
subscriptions.add(observable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean hasFocus) {
//If screen is dimmed, do not allow interaction
if (!screenUtils.isScreenDimmed()) {
if (user != null) {
if (!hasFocus) {
view.renderUserText(user.toString());
}
} else {
//Set text to nothing if interaction happens with autosuggest when screen is dimmed
view.renderUserText("");
}
}
}
}));
}
在图片中我还突出显示了我从 Gradle
进口的商品
你的建议很有帮助
R
RxJava 2 从 RxJava 1 中更改了几个 class 名称。特别是,Action1
has been changed to Consumer
:
.subscribe(new Consumer<Boolean>() { /* ... */ })
确保导入 io.reactivex.functions.Consumer
而不是 java.util.function.Consumer
。
或者,您可以使用 Java 8 lambda:
.subscribe(hasFocus -> { /* ... */ })
当 subscribe
的参数固定时,这也会显示另一个 class 名称差异:CompositeSubscription
现在是 CompositeDisposable
。
我更改了一些与 AndroidSchedulers
和 Observable
相关的 Rxjava 导入。当我这样做时,出现以下错误。
我不确定如何进行。
错误
这些是我在演示者中更改的导入。
import io.reactivex.Flowable;
//import rx.schedulers.Schedulers;
import io.reactivex.schedulers.Schedulers;
//import rx.Observable;
import io.reactivex.Observable;
//import rx.android.schedulers.AndroidSchedulers;
import io.reactivex.android.schedulers.AndroidSchedulers;
如图所示,这段代码有错误
public void setUserFocusChangeObservable(Observable<Boolean> observable) {
subscriptions.add(observable
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean hasFocus) {
//If screen is dimmed, do not allow interaction
if (!screenUtils.isScreenDimmed()) {
if (user != null) {
if (!hasFocus) {
view.renderUserText(user.toString());
}
} else {
//Set text to nothing if interaction happens with autosuggest when screen is dimmed
view.renderUserText("");
}
}
}
}));
}
在图片中我还突出显示了我从 Gradle
进口的商品你的建议很有帮助 R
RxJava 2 从 RxJava 1 中更改了几个 class 名称。特别是,Action1
has been changed to Consumer
:
.subscribe(new Consumer<Boolean>() { /* ... */ })
确保导入 io.reactivex.functions.Consumer
而不是 java.util.function.Consumer
。
或者,您可以使用 Java 8 lambda:
.subscribe(hasFocus -> { /* ... */ })
当 subscribe
的参数固定时,这也会显示另一个 class 名称差异:CompositeSubscription
现在是 CompositeDisposable
。