Получение ViewModel в области действия во фрагменте в onCreateView против onActivityCreated - PullRequest
0 голосов
/ 04 ноября 2018

Нужно ли извлекать ViewModel с областью действия в fragment в onCreateView или onActivityCreated?

viewModel = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);
    viewModel.getText().observe(getViewLifecycleOwner(), new Observer<CharSequence>() {
        @Override
        public void onChanged(@Nullable CharSequence charSequence) {
            editText.setText(charSequence);
        }
    });

Я вижу оба примера онлайн. Некоторые говорят, что getActivity() может вернуть ноль в onCreateView, некоторые говорят, что этого никогда не произойдет.

1 Ответ

0 голосов
/ 05 ноября 2018

Вы должны использовать onViewCreated () вместо onActivityCreated ().

onActivityCreated () вызывается, когда возвращается метод onCreate () действия. Активность уже прикреплена как фрагмент к вашему фрагменту в onCreateView () и onViewCreated () уже;

Использование onViewCreated () более целесообразно для подписки на источник данных после создания иерархии представления.

...