Я столкнулся с этой проблемой после переноса моего проекта на androidx
.Все это работало как чудо до миграции (у меня было для переноса моего проекта) , но теперь я стою перед этой странной проблемой, которой раньше не было 10 минут.
Сценарий: Фрагмент 1 содержит список элементов и когда пользователь нажимает на элемент, я вызываю метод viewmodels setvalue()
, а затем появляется фрагмент 2, чтобы показать, что пользователь щелкнул по элементу, и для этого я называю мои viewmodels 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()
, но это также возвращает ноль.