1つのフラグメントがあります。
ProductsFragments extends Fragment
と1つのアクティビティ
AdminMenuActivity extends ActionBarActivity
AdminMenuActivityからProductsFragmentsを呼び出します。私は2つのオプションを使用しました:
1)
FragmentManager fm = getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
tx.replace(R.id.frame_layout, Android.support.v4.app.Fragment.instantiate(AdminMenuActivity.this, fragments[1]));
tx.commit();
2)
Intent intent1 = new Intent(AdminMenuActivity.this, ProductsActivity.class);
startActivity(intent1);
どちらも失敗しています。 ProductsFragmentsをFragmentActivityで拡張したくないのは、supportedActionBar v7が得られないためです。
では、どのようにFragment
を呼び出すのですか?
これは、アクティビティ内からフラグメントを呼び出す方法です
Fragment fr = new FirstFragment();
fr.setArguments(args);
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
あなたがfragment_placeを持っていると仮定すると、以下を表します:
<fragment Android:name="com.company.appName.fragments.FirstFragment"
Android:id="@+id/fragment_place"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
あなたが得ているなら
2番目の引数のタイプが間違っています。見つかった:「Android.support.v4.app.Fragment」、必須:「Android.app.Fragment」
このエラー、インポートを確認してください、以下を見つけるかもしれません、
_import Android.app.FragmentManager;
import Android.app.FragmentTransaction;
_
上記のインポートを削除します。 getFragmentManager()
をgetSupportFragmentManager()
に変更します
_FragmentManager fragmentManager=getFragmentManager(); to
FragmentManager fragmentManager=getSupportFragmentManager();
_
これでインポートできます
_import Android.support.v4.app.Fragment;
import Android.support.v4.app.FragmentManager;
_