我有2个活动(ActivityMain
,ActivityCost
)和1个片段,用于扩展在FragmentFormula
中打开的片段(ActivityMain
)。
如何从ActivityCost中打开FragmentFormula
?
我希望ActivityMain
已打开并显示FragmentFormula
。
我使用此代码但无法正常工作。
Intent intent = new Intent(G.context, ActivityMain.class);
G.context.startActivity(intent);
overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
ActivityMain.relative_content.setVisibility(View.VISIBLE);
FragmentFormula fragmentFormula = new FragmentFormula();
android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.frameLayout_main_Content,fragmentFormula);
transaction.commit();

答案 0 :(得分:0)
我不明白你想要实现的目标。
在这里,您将启动ActivityMain ,然后设置片段,这将无效,因为您现在已经在ActivityMain中,而不再在ActivityCost中。也许您需要做的是在ActivityMain的onActivityCreated中添加片段,而不是在启动ActivityMain后从ActivityCost添加片段。
如果您不希望它是ActivityMain的默认行为,您可以在intent中传递Extra,然后检查它是否存在于ActivityMain中。
<强> ActivityCost 强>
Intent intent = new Intent(G.context, ActivityMain.class);
intent.putExtra("startFragmentFormula", true);
G.context.startActivity(intent);
overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
ActivityMain.relative_content.setVisibility(View.VISIBLE);
<强> ActivityMain 强>
public void onActivityCreated(Bundle savedInstanceState) {
Intent intent = getIntent();
boolean startFragmentFormula = intent.getExtras().getBoolean("startFragmentFormula");
if (startFragmentFormula) {
FragmentFormula fragmentFormula = new FragmentFormula();
android.support.v4.app.FragmentTransaction transaction =
getSupportFragmentManager().beginTransaction();
transaction.add(R.id.frameLayout_main_Content, fragmentFormula);
transaction.commit();
}
else {
// default behavior
}
}