[英]how to pass data from activity to swipable fragments?
我认为您的主要问题是如何将数据从活动传递到片段?
您可以通过创建Bundle并将数据放入活动中,然后再将其传递给setArguments方法,从而将数据从活动传递至片段。
YourFragment yourFragment = new YourFragment();
Bundle bundle = new Bundle();
bundle.putInt(KEY_RECIPE_INDEX, index);//you can use bundle.putString or others to pass different types of data
yourFragment.setArguments(bundle);
现在,您可以使用getArguments检索片段中的数据
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
int index = getArguments().getInt(ViewPagerFragment.KEY_RECIPE_INDEX);
//........
您还问一个问题,您的活动中有一些数据,要在活动中显示的一些数据,以及想以可滑动片段显示的一些数据。现在,我将向您展示如何使用一个例子。
假设您有两个可滑动的标签,每个标签都有一个片段
final IngredientsFragment ingredientsFragment = new IngredientsFragment();
Bundle bundle = new Bundle();
bundle.putInt(KEY_RECIPE_INDEX, index);
ingredientsFragment.setArguments(bundle);
final DirectionsFragment directionsFragment = new DirectionsFragment();
bundle = new Bundle();
bundle.putInt(KEY_RECIPE_INDEX, index);
directionsFragment.setArguments(bundle);
ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewPager);
viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
@Override
public android.support.v4.app.Fragment getItem(int position) {
return position == 0 ? ingredientsFragment : directionsFragment;
}
@Override
public CharSequence getPageTitle(int position) {
return position == 0 ? "Ingredients" : "Directions";
}
@Override
public int getCount() {
return 2;
}
});
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
我认为您想要在活动中显示的数据没有问题。
快速回顾:您通过创建捆绑包将数据传递给片段,并放置一些数据并使用yourfragment.setArguments(yourBundle)。
现在,我认为您可以将数据传递到可滑动视图。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.