我有一个主要活动(活动A),其框架布局显示3个片段,即片段A,片段B和片段C.我有另一个活动,其中有一个按钮。当我点击该按钮时,我希望它打开片段B.如何打开属于另一个活动的片段。我试过以下代码
android.app.Fragment fragment = new ImageGridFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
但这似乎只有在您从主父片段更改片段时才有效。我怎样才能克服这个并展示属于另一个活动的另一个片段?
答案 0 :(得分:2)
您需要向MainActivity传递一些数据,让它知道它必须打开FragmentB。例如,在secondActivity中使用它
Intent openFragmentBIntent = new Intent(this, MainActivity.class);
openFragmentBIntent.putExtra(OPEN_FRAGMENT_B, SOME_VALUE);
startActivity(openFragmentBIntent);
并在您的MainActivity onCreate
中:
if (getIntent().hasExtra(OPEN_FRAGMENT_B)
{
Fragment fragment = new ImageGridFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
}
答案 1 :(得分:-1)
您需要打开活动A并传递参数(例如通过附加功能),以便您能够启动/打开正确的片段。
@Override
protected void onStart()
{
super.onStart();
if (getIntent() != null && getIntent().hasExtra("something")) {
}
}