我按照本教程使用 ViewPager2 和 FragmentStateAdapter 创建了一个选项卡布局。在我的适配器中,我有一个 ArrayList,其中包含片段的数据,然后我根据片段的位置以不同的方式传递这些数据。我使用参数传递数据,与教程中描述的相同。
数据第一次正确传递,然后我从 DemoCollectionAdapter(或初始化适配器的 Activity)更新数据。更新数据后,我调用 notifyDataSetChanged() 但片段中的数据没有更新。
我还尝试通过覆盖我的 Fragment 中的 onResume 方法来重新设置我的 Fragment 中的 TextViews 文本,这对于我的 7 个片段中的 5 个都很好,这很奇怪。该数组enabledSchedule
由OnViewCreated
方法中的参数设置。
@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。