在onCreateView与onActivityCreated

时间:2018-11-04 12:11:50

标签: android android-fragments android-viewmodel android-livedata

是否应在fragmentonCreateView中检索onActivityCreated中活动范围的ViewModel?

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中返回null,有人说这永远不会发生。

1 个答案:

答案 0 :(得分:1)

您应该使用onViewCreated()而不是onActivityCreated()。

当活动的onCreate()方法返回时,将调用

onActivityCreated()。 活动已作为主机附加到片段的onCreateView()和onViewCreated()中;

在创建视图层次结构后,使用onViewCreated()订阅数据源更为有意义。