web-dev-qa-db-ja.com

アクティビティからgetSupportFragmentManager()を呼び出すことはできません

フラグメントのあるアクティビティがあります。

XML:

 <fragment Android:name="com.example.androidcalculator.ResultFragment"
            Android:id="@+id/result_fragment"
            Android:layout_weight="1"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content" />

そして、ActivityのメソッドからResultFragmentからメソッドを呼び出したいのですが、getSupportFragmentManagerは「存在しません」:

FragmentManager fragMan = getSupportFragmentManager();

どうすれば解決できますか?

79
Taru

アクティビティはサポートライブラリから FragmentActivity を拡張しないため、メソッドはスーパークラスに存在しません

API 11以上をターゲットにしている場合は、代わりに Activity.getFragmentManager を使用できます。

186
Robert Estivill

クラスをAppCompatActivityではなくActivityに拡張します

54
El Pr0grammer

親から現在のアクティビティを取得し、このコードを使用して

getActivity().getSupportFragmentManager()
17
user4790312

インポート

import Android.support.v4.app.FragmentActivity;
import Android.support.v4.app.FragmentManager;
5
sansalk

単に使用する

 FragmentManager fm = getActivity().getSupportFragmentManager();

MainLayoutでフラグメントの膨張にアクセスするときは常にCastingまたはgetActivity()を使用してください。

3
Nitesh Rathod

アクティビティの代わりにFragementAvtivityを拡張します

2
dileep krishnan

これは私のために働いた。 Android AP​​I 19以降を実行しています。

FragmentManager fragMan = getFragmentManager();
2
Nic Parmee
getCurrentActivity().getFragmentManager()
1
Cesar Alonso