Probably a noob question. How do I set a default value to a BehaviourSubject.
I have an enum with 2 different values
enum class WidgetState {
HIDDEN,
VISIBLE
}
And a behaviour subject which emits the states
val widgetStateEmitter: BehaviorSubject<WidgetState> = BehaviorSubject.create()
My emitter starts emitting when the view logic is written. However it's HIDDEN by default. How do I set the default value as WidgetState.HIDDEN to my emitter widgetStateEmitter?
There's a static BehaviorSubject.createDefault(T defaultValue) factory method that allows to set the initial value.
The Javadoc for the defaultValue parameter says:
defaultValue- the item that will be emitted first to anyObserveras long as theBehaviorSubjecthas not yet observed any items from its sourceObservable
So you just have to create your BehaviorSubject as follows:
val widgetStateEmitter: BehaviorSubject<WidgetState> =
BehaviorSubject.createDefault(HIDDEN)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With