Есть способ сделать это с помощью `Transformations.switchMap.
Это похоже на то, как будто кто-то только что спросил, почему пистолет, направленный на их ногу, не стреляет.Это я говорю вам, что безопасность все еще включена, то, что вы делаете со своей ногой, это ваше дело.
По сути, у вас есть LiveData, который будет извлекать данные других для извлечения / обновления.
private val _loadData = MutableLiveData<Boolean>()
val penLiveData = Transformations.switchMap(_loadData) { roomdb.getPen() }
//...
Затем вы устанавливаете _loadData.value = true
, убедившись, что установлено roomdb
.
Может быть, следующее немного чище?
private val _loadData = MutableLiveData<RoomDb>()
val penLiveData = Transformations.switchMap(_loadData) { it?.getPen() }
//...
и
_loadData.value = roomdb
или, если в асинхронном контексте.
_loadData.postValue(roomdb)
Возможно, вы захотите вернуть какой-нибудь Default или NullObject (например, AbsentLiveData из примеров AAC), если параметр switchMap
равен null
.