Есть фрагмент с четырьмя вкладками сверху.Каждая вкладка имеет свой фрагмент.Я использую фрагмент первой, второй, третьей вкладок, чтобы собрать данные, сохраненные в моих SharedPreferences, и на четвертой вкладке, чтобы получить их.
При переключении на четвертую страницу я хотел бы видеть информацию, которую я выбираю из других фрагментов.Моя проблема в том, что только первая вкладка может сразу передавать данные на четвертую страницу, что бы я ни сохранял, она может сразу же отображаться на четвертой странице, вот что я хочу.
Однако другие странные
IМне нужно сделать еще один шаг, чтобы перейти на первую вкладку, она может даже обновить мои данные с других вкладок на четвертую страницу.
Что я не так сделал с моим кодом или заказом, чтобы это произошло?
public class UserActivityMenuFragment extends Fragment {
public static final String[] sTitle = new String[]{"first","second","third","fourth"};
@Nullable
@Override
public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.menu_activity,container ,false);
initView(view);
return view;
}
private void initView(View view) {
ViewPager mViewPager = view.findViewById(R.id.containerView);
TabLayout mTabLayout = view.findViewById(R.id.tabs);
mTabLayout.addTab(mTabLayout.newTab().setText(sTitle[0]));
mTabLayout.addTab(mTabLayout.newTab().setText(sTitle[1]));
mTabLayout.addTab(mTabLayout.newTab().setText(sTitle[2]));
mTabLayout.addTab(mTabLayout.newTab().setText(sTitle[3]));
mTabLayout.setupWithViewPager(mViewPager);
List<Fragment> fragments = new ArrayList<>();
fragments.add(FirstFragment.newInstance());
fragments.add(SecondFragment.newInstance());
fragments.add(ThirdFragment.newInstance());
fragments.add(FourthFragment.newInstance());
UserActivityMenuAdapter adapter = new UserActivityMenuAdapter(getChildFragmentManager(),fragments, Arrays.asList(sTitle));
mViewPager.setAdapter(adapter);
mViewPager.setOffscreenPageLimit(2);
mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
Мой адаптер
public class UserActivityMenuAdapter extends FragmentStatePagerAdapter {
private List<Fragment> mFragments ;
private List<String> mTitles ;
public UserActivityMenuAdapter
(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
super(fm);
mFragments = fragments;
mTitles = titles;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments == null ?0:mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitles.get(position);
}
}