我正在尝试使用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()感谢您的帮助。