我正在尝试使用MutableLiveData
数据库中的预填充值,但Observer
始终返回null
为book
. 我需要将其保留为MutableLiveData
, NOT LiveData
,因为我必须在某些地方以编程方式设置它。因此,我正在调用从数据库setValue
中检索到的内容。LiveData
代码:
ViewModel
:
private final MutableLiveData<Book> bookLiveData;
public MyViewModel(@NonNull Application application) {
super(application);
...
book = new MutableLiveData<>();
bookLiveData.setValue(bookRep.getBookLiveData().getValue());
....
}
Fragment
:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
...
getActivity().getBookLiveData().observe(getViewLifecycleOwner(), book -> {
... // When fragment is created, book is always null here
});
}
有人可以告诉我为什么Book
观察者为空吗?我认为当完成并检索值Observer
时会收到通知。bookRep.getBookLiveData()
感谢您的帮助。