是否应在fragment
或onCreateView
中检索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,有人说这永远不会发生。
答案 0 :(得分:1)
您应该使用onViewCreated()而不是onActivityCreated()。
当活动的onCreate()方法返回时,将调用onActivityCreated()。 活动已作为主机附加到片段的onCreateView()和onViewCreated()中;
在创建视图层次结构后,使用onViewCreated()订阅数据源更为有意义。