[英]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.