gpt4 book ai didi

android - 在文本更改事件之前自动调用 RxAndroid textview 事件

转载 作者:可可西里 更新时间:2023-11-01 18:49:37 27 4
gpt4 key购买 nike

我使用 rxandroid 对 edittext 搜索进行反跳操作

我用过

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
}
};
}

我的问题是链接甚至在任何 edittext 更改发生之前就被调用了。它不调用 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)到您的订阅对象。 [感谢 Daniel Lew ]

上面的代码现在可以完美运行了

最佳答案

RxTextView.textChanges() 在发出任何更改之前发出 TextView 的当前文本值。参见 the documentation .

如果你只想去抖变化,那么你应该添加 skip(1),这将忽略初始发射:

_mSubscription = RxTextView.textChangeEvents(searchStation)
.skip(1)
.debounce(500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getOps().getdata());

关于android - 在文本更改事件之前自动调用 RxAndroid textview 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284273/

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