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

我使用rxandroid进行了edittextsearch的去抖操作

我用了

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方法,并把stacktrace我发现问题。

如果你想跳过最初的调用,那么我们应该调用.skip(1)到你的订阅对象。 [感谢Daniel Lew ]

上面的代码现在工作完美

Solutions Collecting From Web of "在文本更改事件之前自动调用RxAndroid textview事件"

在发出任何更改之前, RxTextView.textChanges()会发出TextView的当前文本值。 请参阅文档 。

如果你只想消除变化,那么你应该添加skip(1) ,这将忽略最初的发射:

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