使用 RxView.clicks(订阅不起作用)
Use RxView.clicks (subscribe does not work)
我是响应式编程(RxJava 和 RxAndroid)的新手。我想使用 RxView.clicks() 而不是点击监听器。我将一个 Button 放入主层并使用 Butterknife 和 onCreate 方法 Main activity 我写了这个语句:
**//onCreate**
ButterKnife.bind(this);
RxView.clicks(btn_range)
.switchMap(new Function<Object, Observable<Integer>>() {
@Override
public Observable<Integer> apply(Object o) throws Exception {
return Observable.range(1,10);
}
})
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
d.dispose();
}
@Override
public void onNext(Integer integer) {
Toast.makeText(MainActivity.this, integer+"", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Throwable e) {
Toast.makeText(MainActivity.this, e.getMessage()+"", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete() {
}
});
但是当我运行它时,没有吐司出现。
我已将我的点击侦听器转换为可观察对象,然后将可观察对象更改为整数范围,最后显示它。
在您的 .subscribe()
中,Observer<Integer>
会在订阅后立即调用 d.dispose()
。
因此,如果您的链条被处理掉,那么它就无法再工作了。 Disposable
当你不再需要流量时应该被释放。
您可以存储发出的 Disposable
并将其放置在您订阅它的相反生命周期事件回调中。
我是响应式编程(RxJava 和 RxAndroid)的新手。我想使用 RxView.clicks() 而不是点击监听器。我将一个 Button 放入主层并使用 Butterknife 和 onCreate 方法 Main activity 我写了这个语句:
**//onCreate**
ButterKnife.bind(this);
RxView.clicks(btn_range)
.switchMap(new Function<Object, Observable<Integer>>() {
@Override
public Observable<Integer> apply(Object o) throws Exception {
return Observable.range(1,10);
}
})
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
d.dispose();
}
@Override
public void onNext(Integer integer) {
Toast.makeText(MainActivity.this, integer+"", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Throwable e) {
Toast.makeText(MainActivity.this, e.getMessage()+"", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete() {
}
});
但是当我运行它时,没有吐司出现。
我已将我的点击侦听器转换为可观察对象,然后将可观察对象更改为整数范围,最后显示它。
在您的 .subscribe()
中,Observer<Integer>
会在订阅后立即调用 d.dispose()
。
因此,如果您的链条被处理掉,那么它就无法再工作了。 Disposable
当你不再需要流量时应该被释放。
您可以存储发出的 Disposable
并将其放置在您订阅它的相反生命周期事件回调中。