如何将活动重定向到片段?

时间:2015-01-06 13:33:06

标签: android android-fragments

每当我打开我的应用程序时,它打开第一个片段,因为它需要..我要问的是..如果用户点击第二个项目......第二个片段将出现,我有文本视图名为“第二个”..现在单击该文本视图后,它将重定向到下一个活动..该活动有按钮,所以当我点击该按钮时,应该出现带有文本视图“second”的片段..这就是我想要的...希望你得到...

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

Fragment位于Activity内,您可以在此片段之间切换

     getFragmentManager().beginTransaction()
     .replace(R.id.content_frame,new YourFragment(),"fragment_tag")
    .addToBackStack(null)
      .commit();

如果你想从其他活动转到特定的Fragment(A是第一个活动并且有一个像B和C这样的片段是另一个活动),你应该将Bundle传递给你的Activity }

//In C
Intent mIntent = new Intent(this, A.class);
Bundle extras = mIntent.getExtras();
extras.putString("Go_To_Fragment", "B");

现在获取A中的包并检查它是否等于B然后替换B

另一种方法是向backstack添加片段然后你可以通过按回按钮去(仅)前一个Fragment,例如,如果你按C中的后退按钮,你将回到{{ 1}}(假设您从B

致电C

<强> EDIT1:

我认为你应该使用第二种方式。将所有片段存储在堆栈中,然后最后一个片段(如B)将存储在堆栈顶部。现在您可以获得最后一个片段

B

getSupportFragmentManager().popBackStack();

这将为您提供FragmentManager manager = getSupportFragmentManager(); int count = manager.getBackStackEntryCount(); if(count>0){ Fragment mfragment = manager.getBackStackEntryAt(count-1); FragmentTransaction ft = fragmentManager.beginTransaction(); ft.replace(R.id.content_frame, mFragment); ft.commit(); }