我正在过滤底部表中的数据,该底部表可以在不同活动的两个不同片段中打开,当我过滤片段A上的数据时,它们保存在视图模型上,但是当我进入片段B并观察数据时,它们为空。如果我返回片段 A,数据已保存并过滤,如何解决此问题? 我正在使用 Dagger Hilt,所以我认为我不应该使用 BaseViewmodelFactory。 这是视图模型:
@HiltViewModel
class CarViewModel @Inject constructor() : ViewModel() {
private val _carFilters = MutableLiveData<CarFilters>().apply {
value = CarFilters()
}
val carFilters: LiveData<CarFilters> get() = _carFilters
private val _dates = MutableLiveData<DateFilters?>()
val date: MutableLiveData<DateFilters?> get() = _dates
fun updateDates(dates: DateFilters) {
_dates.value = dates
}
fun updateFilters(updatedFilters: CarFilters) {
_carFilters.value = updatedFilters
}
}
我对此也很小心,这就是我在每个片段和底页上调用视图模型的方式:
private val viewModel: CarViewModel by activityViewModels()
// my observable :
viewModel.carFilters.observe(viewLifecycleOwner){...}
请检查 viewModel 实例,我认为您有 2 个 viewModel 实例