如何将 activity 重定向到片段?

How to redirect activity to fragment?

每当我打开我的应用程序时,它都会打开第一个片段,因为它需要..我要问的是..如果用户点击第二个项目..第二个片段将出现并且我有一个名为[=19=的文本视图..现在点击该文本视图后,它将重定向到下一个 activity..那个 activity 有按钮,所以当我点击那个按钮时,带有文本视图的片段 "second"应该出现..这就是我想要的..希望你能得到...

Fragments 在 Activity 中,你可以像这样在片段之间切换

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

如果你想从其他活动转到特定的 Fragment(A 是第一个 activity 并且有一个像 B 的片段,C 是另一个 Activity)你应该通过 Bundle 到你的 Activity

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

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

另一种方法是将片段添加到后台堆栈,然后您可以通过按后退按钮(仅)转到前一个 Fragments,例如,如果您在 C 中按后退按钮,您将返回到B(假设您从 B 调用 C

编辑1:

我认为你应该使用第二种方式。将所有片段存储在堆栈中,然后最后一个片段(如 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();
}

这会给你 B