передача данных из одного фрагмента в другой без изменения фрагмента - PullRequest
0 голосов
/ 06 марта 2020

У меня есть одно действие HomeActivity, и у меня есть HomePageFragment, в котором есть несколько категорий со значком и заголовком данных, когда я щелкаю по любой категории, я отправляю выбранный элемент Название заголовка с пачкой и открытием MultipleFragment и Я получаю название заголовка по предыдущему фрагменту, на этом множестве фрагментов у меня внутри есть viewpager ..
1) PostFragment,
2) TextFragment
Теперь вот мой главный вопрос, который я хотите отправить название заголовка кликаемого элемента на PostFragment и TextFragment,
HomeFragment

public void onItemClick(int position) {
    MultiplePost multiplePost = new MultiplePost();
    Bundle args = new Bundle();
    Categories categoriesClicked = categoriesList.get(position);
    args.putString(Title, categoriesClicked.getTitle());
    args.putString(ImageUrl, categoriesClicked.getIcon());
    multiplePost.setArguments(args);
    getActivity().getSupportFragmentManager().beginTransaction()
                    .replace(R.id.main_frame,multiplePost)
                    .addToBackStack(null)
                    .commit();
}

MultiplePost

public class MultiplePost extends Fragment {
    private TabLayout tabLayout;
    private ViewPager viewPager;
    private ViewPageAdapter viewPageAdapter;
    private View view;
    private FragmentManager mFragmentManager;
    public static String title ;


    public MultiplePost() {
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_multiple_post, container, false);

        title = getArguments().getString("title");
        tabLayout = view.findViewById(R.id.tablayout_id);
        viewPager = view.findViewById(R.id.viewPager_id);
        viewPageAdapter = new ViewPageAdapter(getChildFragmentManager());

        viewPageAdapter.AddFragment(new PostFragment(), "");
        viewPageAdapter.AddFragment(new TextFragment(), "");

        viewPager.setAdapter(viewPageAdapter);

        tabLayout.setupWithViewPager(viewPager);

        tabLayout.getTabAt(0).setIcon(R.drawable.photo);
        tabLayout.getTabAt(1).setIcon(R.drawable.file);

        PostFragment post = new PostFragment();
        Bundle args = new Bundle();
        args.putString("title", title);
        post.setArguments(args);
        getActivity().getSupportFragmentManager().beginTransaction();
               .replace(R.id.main_frame, post)
               .commit();// and this's changing whole fragment with PostFragment and 
//so i can't see my viewpager on MultiplePost
        return view;
    }

}

ViewPagerAdapter

public class ViewPageAdapter extends FragmentPagerAdapter {
    private final List<Fragment> listFragment = new ArrayList<>();
    private final List<String> listTitle = new ArrayList<>();
    public ViewPageAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return listFragment.get(position);
    }

    @Override
    public int getCount() {
        return listTitle.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return listTitle.get(position);
    }

    public void AddFragment(Fragment fragment, String title){
        listFragment.add(fragment);
        listTitle.add(title);
    }

}

Как отправить заголовок на PostFragment и TextFragment в viewpager

...