Быстрый вопрос о MutableLiveData (Android) - PullRequest
0 голосов
/ 09 октября 2019

Внутри основной деятельности я не могу вызвать getValue () для атрибута MutableLiveData ViewModel;Тем не менее, я могу внутри класса ViewModel. В чем причина этого?

Пример кода: Основная деятельность -

noodleViewModel = ViewModelProviders.of(this).get(NoodleViewModel.class);
        noodleViewModel.indexOfItemSelected.observe(this, index ->
            {
                Toast.makeText(this, String.format("This is the index: %d", index.intValue()), Toast.LENGTH_SHORT).show();

        );

Внутри класса ViewModel -

   public int getPosition() {
        return indexOfItemSelected.getValue();
    }

1 Ответ

1 голос
/ 09 октября 2019

Вы уже наблюдаете свои LiveData, поэтому index параметр вашей лямбды уже является значением, которое вы ищете

noodleViewModel.indexOfItemSelected.observe(this, index -> {
    index == noodleViewModel.indexOfItemSelected.getValue() // should return true
}
...