将数据从一个片段传递到另一个片段,而不更改片段

时间:2020-03-06 13:33:51

标签: java android android-fragments

我有一个活动HomeActivity,并且我有HomePageFragment,其中有一些类别,带有图标和数据标题,当我单击任何类别时,我将发送带有捆绑并打开的被点击项目标题名称MultipleFragment,我从上一个片段中单击标题名称,在这多个片段中,我里面装有viewpager。。
1)PostFragment
2)TextFragment
现在这是我的主要问题,我想将单击的项目标题名称发送到PostFragmentTextFragment
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();
}

多篇帖子

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中

0 个答案:

没有答案