Android 将实时数据从ViewModel发送到ViewPager2的适配器
我有一个sharedViewModel,它带有一个实时数据变量,可以将数据发送到我的片段,一切都很顺利,我可以捕获片段中的变量。 但是,根据建议,我在onViewCreated中获得sharedViewModel,如下所示:Android 将实时数据从ViewModel发送到ViewPager2的适配器,android,viewmodel,android-livedata,android-viewpager2,mutablelivedata,Android,Viewmodel,Android Livedata,Android Viewpager2,Mutablelivedata,我有一个sharedViewModel,它带有一个实时数据变量,可以将数据发送到我的片段,一切都很顺利,我可以捕获片段中的变量。 但是,根据建议,我在onViewCreated中获得sharedViewModel,如下所示: @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, save
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
DataInitialViewModel initial = new ViewModelProvider(requireActivity()).get(DataInitialViewModel .class);
initial .getStatusUser().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(String s) {
if(ConstsSubscribe.USER_STANDARD.equals(s)){
if(adapter != null)
isAssinante = true;
Toast.makeText(getContext(), "test", Toast.LENGTH_SHORT).show(); // Never enter here
}else{
if(adapter != null)
isAssinante = false;
Toast.makeText(getContext(), "comaefeq", Toast.LENGTH_SHORT).show(); // Never enter too...
}
}
});
}
我在onCreateView上阅读了实时数据,效果很好,是我问题的唯一解决方案,即使困难也不会更大
adapter = new DieAdapter(root.getContext(), dieArrayListAdp, manager, isAssinante); // var isAssinante is never updated... adapter is send to ViewPager2 to setAdapter command after.