首页 > 解决方案 > 如何从 PreviousActivity 将 Intent Extras 传递给 Activity viewpager 中的多个片段

问题描述

我有两个活动Activity A 和 B。Activity B 包含 viewpager,它有两个片段Fragment IFragment II。我正在寻找一种解决方案,将两个单独的意图额外内容(即意图 extras_one意图额外内容)从活动 A 传递到 B,并在片段 I 中加载第一个意图额外内容片段II 中加载第二个意图额外内容。

这可能吗。

这是我在活动 B 中的查看器

        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new Home(), "Fragment I");
        adapter.addFragment(new Grade(), "Fragment II");


        viewPager.setAdapter(adapter);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);


    }

我现在使用 case 语句在活动 A 中传递参数。

        case 0:

                Intent math_strt = new Intent(itemView.getContext(), MainActivity.class);
                math_strt.putExtra(EXTRA_URL, "https://api.myjson.com/bins/16mecx");
                itemView.getContext().startActivity(math_strt);

                break; 

提前致谢。

标签: javaandroidandroid-viewpagerfragment

解决方案


是的,您可以将数据传递给片段,但不使用意图,而是使用捆绑包,因此必须对代码进行一些修改。试试下面的代码片段

    Bundle bundle1,bundle2;

    ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());

    Home frag1 = new Home();
    Grade frag2 = new Grade();

    bundle1 = new Bundle();
    bundle1.putString("key",data); //pass the data you want to pass
    bundle2 = new Bundle();
    bundle2.putString("key",data);

    frag1.setArguments(bundle1);//set arguments require a bundle 
    frag2.setArguments(bundle2);//set arguments require a bundle 

    adapter.addFragment(frag1, "Fragment I");
    adapter.addFragment(frag2, "Fragment II");


    viewPager.setAdapter(adapter);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);

   //Inside the fragments create another bundle
    Bundle b = getIntent().getExtras();
    String data = b.getString("key");

可以在此处找到有关捆绑包的更多信息


推荐阅读