RxAndroid textview eventos llamados automáticamente antes de cambios de texto eventos
He utilizado rxandroid para la operación de rebote en una búsqueda edittext
solía
- RXJava cómo tratar de conseguir después de x tiempo
- RxJava como bus de eventos en proyecto Android - eliminar evento del bus
- ¿Qué hilo es unSubscribeOn llamado? ¿Deberíamos llamarlo?
- Filtrar lista de objetos en Rxjava
- AbstractMethodError cuando se utiliza RxJavaCallAdapterFactory en Retrofit 2
private void setUpText() { _mSubscription = RxTextView.textChangeEvents(searchStation)// .debounce(500, TimeUnit.MILLISECONDS)// default Scheduler is Computation .observeOn(AndroidSchedulers.mainThread())// .subscribe(getOps().getdata()); }
Y observador como
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 } }; }
Mi problema es que el enlace se llama incluso antes de que se produzca cualquier cambio de edittext. Y su no llamar a los eventos de intercambio de texto. ¿Estoy perdiendo algo ¿Qué estoy haciendo mal aquí. Soy nuevo en rxandroid y rxjava.
solía
compile 'io.reactivex:rxandroid:1.1.0' compile 'io.reactivex:rxjava:1.1.0' compile 'com.jakewharton.rxbinding:rxbinding:0.2.0'
EDITAR:
Ahora funciona ahora, estaba recibiendo un puntero nulo en mi lógica para obtener lista .. cuando he utilizado el método onError y poner un stacktrace encontré el problema.
Y si desea omitir la llamada inicial, debemos llamar .skip (1) a su objeto de suscripción. [Gracias a Daniel Lew ]
El código anterior funciona perfectamente ahora
- Robolectric Test no llama a textWatcher.onTextChanged
- Utilizar RxJava para encadenar la solicitud en un solo hilo
- ¿Cómo usar un rxjava observable después de que se complete?
- Retrofit 2 RxJava - Gson - Deserialización "Global", tipo respuesta de cambio
- RxJava comparte las emisiones de un Observable entre múltiples suscriptores
- RxJava - cómo invocar abonado en eventos de 4 clics en Android
- RxJava - Encadenamiento de solicitudes y actualización de la interfaz de usuario
- Creando Observable sin utilizar Observable.create
RxTextView.textChanges()
emite el valor de texto actual de TextView
antes de emitir cualquier cambio. Consulte la documentación .
Si sólo desea rebatizar los cambios, debe agregar skip(1)
, que ignorará la emisión inicial:
_mSubscription = RxTextView.textChangeEvents(searchStation) .skip(1) .debounce(500, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(getOps().getdata());