【问题标题】:Send live data from ViewModel to Adapter of ViewPager2从 ViewModel 向 ViewPager2 的 Adapter 发送实时数据
【发布时间】:2023-03-13 14:57:01
【问题描述】:

我有一个带有实时数据变量的 sharedViewModel,它将数据发送到我的片段,一切顺利,我可以捕获片段中的变量。 但是,按照建议,我在 onViewCreated 中获取 sharedViewModel,如下所示:

@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 中填充了一个适配器,但是,该适配器是使用 Firebase 数据填充的(这需要一些时间)。 因此,即使使用观察者,当适配器与 null 不同时,我的变量也永远无法捕获,使其始终为 null,我永远无法将变量的状态传递给适配器。有什么方法可以在我的适配器中捕获我的实时数据?

adapter = new DieAdapter(root.getContext(), dieArrayListAdp, manager, isAssinante); // var isAssinante is never updated... adapter is send to ViewPager2 to setAdapter command after.

【问题讨论】:

    标签: android viewmodel android-livedata android-viewpager2 mutablelivedata


    【解决方案1】:

    我在 onCreateView 上阅读了实时数据,工作正常,是解决我的问题的唯一解决方案,即使困难也不是更大。

    【讨论】:

      猜你喜欢
      • 2019-05-26
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2022-06-26
      • 2021-07-29
      相关资源
      最近更新 更多