фрагмент транзакции внутри наблюдателя (андроид) - PullRequest
0 голосов
/ 09 октября 2019

Следуя кодовым меткам Google для кода liveata, чтобы наблюдать обновление в ViewModel:

  /** Setting up LiveData observation relationship **/
viewModel.word.observe(this, Observer { newWord ->
   binding.wordText.text = newWord
})

Однако реализация подобного кода в моем MainActivity не работает. То, что я пытаюсь сделать, это реализовать шаблон Master - Detail

  1. Установить индекс элемента, по которому щелкнули, viewModel из фрагмента recyclerView (меню списка)
  2. При обнаружении изменения значения, действие хоста заменяет фрагмент другим.
  3. Новый фрагмент получает индекс выбранного элемента и отображает соответствующую информацию.
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);
        });

Переменная индекса становится красной и не может бытьрешена. У меня нет глубокого понимания лямбды или наблюдателя;что я делаю не так?

...