将项目迁移到androidx
后,我遇到了这个问题。在迁移(我必须迁移我的项目)之前,这一切都像魅力一样,但是现在我站在这个奇怪的问题面前了,而这个问题早在10分钟之前就不存在了。
场景:
片段1包含项目的列表视图,当用户单击项目时,我调用我的视图模型setvalue()
方法,然后片段2出现以显示用户单击的项目,为此,我将其称为我的视图模型getvalue()
。情况很简单。
片段1:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
viewModel.getClickedSong().setValue(viewModel.getSongs().getValue().get(position));
视图模型:
public MutableLiveData<Song> getClickedSong() {
if (clickedSong == null) {
clickedSong = new MutableLiveData<>();
}
return clickedSong;
}
片段2:
viewModel.getClickedSong().observe(this, new Observer<Song>() {
@Override
public void onChanged(Song song) {
mySong = song;
我也尝试过:mySong = viewModel.getClickedSong().getValue()
,但这也返回null。
答案 0 :(得分:0)
经过数小时的研究,测试等,修复非常简单。
我更改了以下代码行:
viewModel = ViewModelProviders.of(this).get(SharedViewModel.class);
对此:
viewModel = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);