gpt4 book ai didi

android - 使用 RxView.clicks(订阅不起作用)

转载 作者:行者123 更新时间:2023-11-29 19:02:50 29 4
gpt4 key购买 nike

我是响应式编程(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() {

}
});

但是当我运行它时,没有出现 toast 。

我已将我的点击监听器转换为可观察对象,然后将可观察对象更改为整数范围,最后显示它。

最佳答案

在你的.subscribe() Observer<Integer>电话 d.dispose()一旦订阅。

因此,如果您的链条被处理掉,那么它就无法再工作了。 Disposable当您不再需要流量时,应该将其丢弃。

您可以存储发出的 Disposable并将其放置在您订阅它的相反生命周期事件回调中。

关于android - 使用 RxView.clicks(订阅不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277591/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com