Dar un RxJava Observable algo a emitir de otro método
Tengo una variable en un fragmento que tendrá su cambio de valor varias veces a lo largo de la vida del fragmento. Es desencadenado por las interacciones de la interfaz de usuario, así que pensé que podría ser una buena idea utilizar un observable para celebrarlo, en lugar de hacer todas las vistas a actualizar como campos y hacer mis cambios de interfaz de usuario de un setter.
El valor tiene que ser actualizado a través de otro método (básicamente un setter que debe llamar a onNext()
en el suscriptor), no a través del observable en sí. ¿Hay alguna manera de hacer eso con el diseño de RxJava?
- La comprensión incorrecta del búfer en RxJava
- RxJava + retrofit, obtenga una lista y agregue información adicional para cada artículo
- RxJava subscribeOn y observeOn no anula el conjunto de Scheduler original antes?
- RxJava / Retrofit - ¿Cómo puedo obligar a los usuarios a usar una subclase específica de suscriptor?
- Retrofit con rxjava manejando excepciones de red a nivel mundial
En otras palabras, estoy buscando tener un campo Observable, y darle nuevos valores para emitir (llamando onNext()
a sus suscriptores) de otro método en la clase.
- ¿Cómo estructurar mi aplicación usando MVP con rxjava y retrofit para obtener datos de Observables?
- ¿Cómo se muestra spinner si RxJava observable toma mucho tiempo?
- ¿Cuándo se debe usar RxJava Observable y cuándo Callback simple en Android?
- Retrofit 2.0 + RxJava + Error JSON cuerpo
- RxJava Android: cargar datos de caché en los subprocesos adecuados
- RxJava: Se produjo un error al intentar propagar el error a Observer.onError
- Maneje la respuesta vacía con retrofit y rxjava 2.x
- InterruptedException en el subproceso de caché RxJava al depurar en Android
RxJava
tiene RxJava
para este propósito. Por ejemplo:
private final PublishSubject<String> subject = PublishSubject.create(); public Observable<String> getUiElementAsObservable() { return subject; } public void updateUiElementValue(final String value) { subject.onNext(value); }