簡體   English   中英

如何將數據從活動傳遞到可滑動片段?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM