首页 > 解决方案 > 如何在意图的帮助下打开活动托管的第 n 个片段?

问题描述

我有一个包含 12 个片段的活动。另一个有 12 个按钮的活动。我想在单击第一个按钮时打开第一个片段,通过单击第二个按钮打开第二个片段,依此类推。但我只能打开活动,并且总是第一个片段打开它。对于第 n 个片段,我每次都必须滚动。

我的应用程序显示了 12 个团队的名称,当点击一个团队时,它会打开完整的小队列表。所有小队碎片(12 个碎片)都由一个活动托管。我想根据团队打开小队碎片。

代码

Intent i = new Intent(getActivity(),SquadActivity.class);
                                startActivity(i);

队名

小队名单

标签: androidandroid-fragmentsandroid-intent

解决方案


您可以替换活动容器中的片段。在按钮上单击传递片段编号。并用它来替换片段。

点击按钮

Intent i = new Intent(getActivity(),SquadActivity.class);
i.putExtra("frag_no",Fragment_no)
startActivity(i);

内部活动 onResume()

Intent i=getIntent();
int frag_no=i.getIntExtra("frag_no",0);
Switch(frag_no)
{
case 1:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment1(), "Frag1");
    break;

case 2:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment2(), "Frag2");
    break;

case 3:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment3(), "Frag3");
    break;

case 4:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment4(), "Frag4");
    break;

case 5:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment5(), "Frag5");
    break;

case 6:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment6(), "Frag6");
    break;

case 7:
    getSupportFragmentManager().beginTransaction().replace(R.id.container, new fragment7(), "Frag7");
    break;

}

您可以根据您的要求使用不同的条件。


推荐阅读