java - 将数据从一个片段传递到另一个片段而不更改片段
问题描述
我有一个活动HomeActivity
,HomePageFragment
其中有一些带有图标和数据标题的类别,当我单击任何类别时,我正在发送带有捆绑和打开的单击项目标题名称,MultipleFragment
并且我从上一个片段中获得单击标题名称,在这多个片段上,我里面有 viewpager..
1) PostFragment
,
2)TextFragment
现在这是我想将点击的项目标题名称发送到PostFragment
HomeFragment的TextFragment
主要问题
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
解决方案
推荐阅读
- java - EntityManager.createQuery().executeUpdate 不更新数据库
- docker - pika rabbitmq docker 与 tls-gen 连接重置,没有日志
- arrays - 如何在 Swift 中的 if/else 语句中获取数据
- shopify - 有没有办法在shopify中获取另一个片段的设置值?
- firebase - Firebase 手机身份验证不适用于 Android 真实设备
- c++ - 如何将函数指针从一个类传递到 C++ 中的另一个函数
- python - Compute L2 distance with numpy using matrix multiplication
- javascript - jQuery / Javasript:更改 url 后运行代码
- reactjs - 在外部包中使用 Route 或 Link 时,React Router Invariant 失败
- php - 如何杀死在 Windows 后台运行的特定 cmd.exe 进程?