0

我按照教程使用 ViewPager2 和 FragmentStateAdapter 创建了一个选项卡布局。在我的适配器中,我有一个 ArrayList,其中包含片段的数据,然后我根据片段的位置以不同的方式传递这些数据。我使用参数传递数据,与教程中描述的相同。

数据第一次正确传递,然后我从 DemoCollectionAdapter(或初始化适配器的 Activity)更新数据。更新数据后,我调用 notifyDataSetChanged() 但片段中的数据没有更新。

我还尝试通过覆盖我的 Fragment 中的 onResume 方法来重新设置我的 Fragment 中的 TextViews 文本,这对于我的 7 个片段中的 5 个都很好,这很奇怪。该数组enabledScheduleOnViewCreated方法中的参数设置。

@Override
    public void onResume() {
        super.onResume();

        getActivity().runOnUiThread(new Runnable() {
            public void run() {
                Log.d("DebugFrag-Frag", "I am the UI thread");
                swSlotOne.setChecked(enabledSchedule[0]);
                swSlotTwo.setChecked(enabledSchedule[1]);
                swSlotThree.setChecked(enabledSchedule[2]);
                swSlotFour.setChecked(enabledSchedule[3]);
            }
        });
    }

我是否以不适当的方式更新片段的数据?Android的教程似乎没有提到如何更新数据。

注意 这个问题是不同的,因为它使用 ViewPager 而不是 ViewPager2 和 PagerAdapter 而不是 FragmentStateAdapter。

4

0 回答 0