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 anyObserver
as long as theBehaviorSubject
has 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