Следуя кодовым меткам Google для кода liveata, чтобы наблюдать обновление в ViewModel:
/** Setting up LiveData observation relationship **/
viewModel.word.observe(this, Observer { newWord ->
binding.wordText.text = newWord
})
Однако реализация подобного кода в моем MainActivity не работает. То, что я пытаюсь сделать, это реализовать шаблон Master - Detail
- Установить индекс элемента, по которому щелкнули, viewModel из фрагмента recyclerView (меню списка)
- При обнаружении изменения значения, действие хоста заменяет фрагмент другим.
- Новый фрагмент получает индекс выбранного элемента и отображает соответствующую информацию.
noodleViewModel = ViewModelProviders.of(this).get(NoodleViewModel.class);
noodleViewModel.indexOfItemSelected.observe(this, Observer{ index ->
int holder = index; // <-- index cannot be resolved
Fragment fragment_two = new NoodleDetailFragment(index); // <-- index cannot be resolved
FragmentTransaction ft2 = getSupportFragmentManager().beginTransaction();
ft2.replace(R.id.content_frame, fragment_two);
});
Переменная индекса становится красной и не может бытьрешена. У меня нет глубокого понимания лямбды или наблюдателя;что я делаю не так?