【发布时间】:2016-03-20 22:50:00
【问题描述】:
我使用 rxandroid 对编辑文本搜索进行去抖动操作
我用过
private void setUpText() {
_mSubscription = RxTextView.textChangeEvents(searchStation)//
.debounce(500, TimeUnit.MILLISECONDS)// default Scheduler is Computation
.observeOn(AndroidSchedulers.mainThread())//
.subscribe(getOps().getdata());
}
和观察者作为
public Observer<TextViewTextChangeEvent> getdata()
{
return new Observer<TextViewTextChangeEvent>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(TextViewTextChangeEvent onTextChangeEvent) {
// stationsugession(onTextChangeEvent.text().toString());
//here i called link to get the data from the server
}
};
}
我的问题是链接甚至在任何编辑文本更改发生之前就被调用了。 而且它没有调用 textchange 事件。 我错过了什么吗 我在这里做错了什么。我是 rxandroid 和 rxjava 的新手。
我用过
compile 'io.reactivex:rxandroid:1.1.0'
compile 'io.reactivex:rxjava:1.1.0'
compile 'com.jakewharton.rxbinding:rxbinding:0.2.0'
编辑:
它现在可以工作了,我在获取列表的逻辑中得到了一个空指针。 当我使用 onError 方法并放置堆栈跟踪时,我发现了问题。
如果你想跳过最初的调用,那么我们应该调用 .skip(1) 到您的订阅对象。 [感谢 丹尼尔·卢 ]
上面的代码现在可以正常工作了
【问题讨论】:
-
TextViewChangeEvent 的内容是什么?
-
TextViewTextChangeEvent 是 com.jakewharton.rxbinding:rxbinding 中的一个类,用于获取我猜的 edittext 事件
-
我知道。调用
onTextChangeEvent.text()并记录结果返回什么? -
它只调用了一次,第一次,我没有收到改变的事件
-
请将该信息添加到您的问题中。
标签: android rx-java rx-android